12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776 |
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
- return new (P || (P = Promise))(function (resolve, reject) {
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
- step((generator = generator.apply(thisArg, _arguments || [])).next());
- });
- };
- var Unibase;
- (function (Unibase) {
- let Platform;
- (function (Platform) {
- let Connect;
- (function (Connect) {
- let Components;
- (function (Components) {
- class Chat extends Platform.Core.BaseComponent {
- constructor() {
- super();
- this._chatmanager = Platform.Connect.Managers.ChatManager.Instance();
- this._chatter = Unibase.Platform.Connect.Components.Chatter.Instance();
- this._chatTemplate = Unibase.Platform.Connect.Components.ChatTemplate.Instance();
- Chat.currentUser = Unibase.Platform.Membership.Infos.Identity.currentUser;
- }
- cssFiles() {
- var cssfiles = ["tenants/themes/compact/css/style.chat.css"];
- return cssfiles;
- }
- jsFiles() {
- var jsfiles = [
- 'platform/connect/requests/chat.js',
- 'platform/connect/requests/chatgroup.js', 'platform/connect/requests/chatrecipient.js',
- 'platform/core/infos/status.js', 'platform/hubs/providers/basepacket.js',
- 'platform/core/helpers/datetimehelper/datetimehelper.js', 'platform/connect/enums/groupmessagetype.js', 'platform/connect/enums/messagetype.js', 'platform/connect/components/chat.template.js', 'platform/connect/infos/chatcontact.js'
- ];
- return jsfiles;
- }
- html(id, containerid) {
- throw new Error("Method not implemented.");
- }
- load(id, containerid, callback) {
- const instance = this;
- window.addEventListener("paste", this.copyscreen);
- $(window).keydown(function (e) {
- if (e.shiftKey || e.ctrlKey && e.which == 13) {
- return;
- }
- else if (e.which == 13) {
- e.preventDefault();
- }
- });
- $('.footer-multiaction').click(function () {
- $('.message-checkbox').prop("checked", false);
- $('.msg-check').addClass('hidden');
- $('#chatMsgHeader,.msg-input-wrap').removeClass('hidden').addClass('d-flex');
- $('.msg-multiaction-btns').addClass('hidden');
- $('#selectedMsgsCountHeader').addClass('hidden');
- $('.chatoptions-wrapper').removeClass('hidden');
- $('.selected-msgs-count').text(0);
- var item = $(this).attr("data-item");
- switch (item) {
- case "Delete":
- Chat.Instance().MultiDelete();
- break;
- case "Copy":
- Chat.Instance().multiplecopy();
- break;
- case "Star":
- Chat.Instance().multiplestar();
- break;
- case "Forward":
- Chat.Instance().forwardDesign("Multi-Forward");
- break;
- }
- });
- $('#input_msg_send_chatapp').keyup(function (e) {
- const msgInput = $(this);
- instance.autoAdjustMsgInputHeight();
- var val = msgInput.val().toString();
- $('.deleiverduserslist').html('');
- $('.readuserslist').html('');
- $('.message-info').addClass('hidden');
- $('#chatEmojis').addClass('hidden');
- $('.msg-compose-options').addClass('hidden');
- if ((e.shiftKey) && e.which == 13) {
- return;
- }
- else if (e.ctrlKey && e.which == 13) {
- msgInput.val(val + '\n');
- }
- else if (e.which == 13) {
- e.preventDefault();
- }
- if (msgInput.val() == "" && e.which == 8 || e.which == 46) {
- $('#icon_send,.div_CLose').addClass('hidden');
- $('.msg-compose-options').removeClass('hidden');
- $('#recordaudio').removeClass('hidden');
- Chat.istyping = true;
- let user = Chat.currentUser;
- let _packet = new Unibase.Platform.Connect.Server.Packets.Typing();
- _packet.FromUserId = user.userId;
- _packet.UserName = user.name;
- _packet.ToUserId = Number($('#private_id').val());
- _packet.ChatGroupId = Chat.chatGroupId;
- _packet.Isprivate = Chat.isPrivate;
- _packet.SessionId = user.sessionId;
- Unibase.Platform.Connect.Components.Chat.instance._chatter.onTypingStop(_packet, null);
- }
- else if (e.which == 13 && !e.ctrlKey) {
- var val = msgInput.val().toString();
- val = val.trim();
- if (val != "" || Chat.attachments.length > 0) {
- if (Chat.isEdit == true) {
- Unibase.Platform.Connect.Components.Chat.Instance().edit(Chat.chatid);
- Chat.isEdit = false;
- }
- else if (msgInput.val() != "" || msgInput.val() != null) {
- Unibase.Platform.Connect.Components.Chat.Instance().send();
- $('#icon_send').addClass('hidden');
- $('#recordaudio').removeClass('hidden');
- $('.msg-compose-options').removeClass('hidden');
- msgInput.val('').removeAttr('style');
- ;
- Chat.fileitems = 0;
- Chat.istyping = true;
- Chat.attachments = [];
- let user = Chat.currentUser;
- let _packet = new Unibase.Platform.Connect.Server.Packets.Typing();
- _packet.FromUserId = user.userId;
- _packet.UserName = user.name;
- _packet.ToUserId = Number($('#private_id').val());
- _packet.ChatGroupId = Chat.chatGroupId;
- _packet.Isprivate = Chat.isPrivate;
- _packet.SessionId = user.sessionId;
- Unibase.Platform.Connect.Components.Chat.instance._chatter.onTypingStop(_packet, null);
- }
- }
- }
- else {
- if (Chat.istyping) {
- Chat.istyping = false;
- $('#icon_send').removeClass('hidden');
- $('#recordaudio').addClass('hidden');
- let user = Chat.currentUser;
- let _packet = new Unibase.Platform.Connect.Server.Packets.Typing();
- _packet.FromUserId = user.userId;
- _packet.UserName = user.name;
- _packet.ToUserId = Number($('#private_id').val());
- _packet.ChatGroupId = Chat.chatGroupId;
- _packet.Isprivate = Chat.isPrivate;
- _packet.SessionId = user.sessionId;
- Unibase.Platform.Connect.Components.Chat.instance._chatter.onTyping(_packet, null);
- }
- }
- const mentionableContactsEl = $('#mentionableContactList');
- if (val != undefined && (val.trim() == "@" || val.includes("@"))) {
- var grpdeatails = Chat.grpdetails;
- if (Chat.isPrivate) {
- var contactInfo = Chat.Instance().getContactInfo(Chat.contactId, Chat.chatGroupId);
- const contactObj = {
- contactId: Chat.contactId, contactName: contactInfo.contactName, photoUrl: contactInfo.photoUrl
- };
- const contactsHtml = instance._chatTemplate.getMentionableContactTemplate(contactObj);
- mentionableContactsEl.html(contactsHtml);
- }
- else {
- var k = val.split('@');
- var a = k[k.length - 1];
- grpdeatails = grpdeatails.filter(x => x.contactName.toLowerCase().includes(a.toLowerCase()));
- let contactsHtml = '';
- for (var i = 0; i < grpdeatails.length; i++) {
- const contact = grpdeatails[i];
- if (Chat.currentUser.userId != contact.recipientId) {
- contactsHtml += instance._chatTemplate.getMentionableContactTemplate(contact);
- }
- }
- mentionableContactsEl.html(contactsHtml);
- }
- mentionableContactsEl.removeClass('hidden');
- $('.mentionble-contact').click(function () {
- var s = val.split(" ");
- var j = s.slice(0, s.length - 1).join(" ");
- var name = j + " " + $(this).attr('data-contactname') + " ";
- $('#input_msg_send_chatapp').val(name).focus();
- instance.autoAdjustMsgInputHeight();
- mentionableContactsEl.addClass('hidden');
- });
- if (Chat.isPrivate) {
- if ((e.keyCode >= 65 && e.keyCode <= 90) || e.keyCode == 32) {
- mentionableContactsEl.addClass('hidden');
- }
- }
- }
- else {
- mentionableContactsEl.addClass('hidden');
- }
- });
- $('#input_msg_send_chatapp').blur(function (e) {
- $('.msg-compose-options').removeClass('hidden');
- if (!$(e.relatedTarget).closest('.mentionable-contact-list').length) {
- $('#mentionableContactList').addClass('hidden');
- }
- instance.autoAdjustMsgInputHeight();
- });
- $('#input_msg_send_chatapp').focus(function () {
- const val = $(this).val().toString();
- if (val != undefined && (val.trim() == "@" || val.includes("@"))) {
- $('#mentionableContactList').removeClass('hidden');
- }
- else {
- $('#mentionableContactList').addClass('hidden');
- }
- instance.autoAdjustMsgInputHeight();
- });
- $('#icon_send').click(function () {
- if (Chat.isEdit == true) {
- Unibase.Platform.Connect.Components.Chat.Instance().edit(Chat.chatid);
- Chat.isEdit = false;
- let user = Chat.currentUser;
- let _packet = new Unibase.Platform.Connect.Server.Packets.Typing();
- _packet.FromUserId = user.userId;
- _packet.UserName = user.name;
- _packet.ToUserId = Number($('#private_id').val());
- _packet.ChatGroupId = Chat.chatGroupId;
- _packet.Isprivate = Chat.isPrivate;
- _packet.SessionId = user.sessionId;
- Unibase.Platform.Connect.Components.Chat.instance._chatter.onTypingStop(_packet, null);
- }
- else {
- Unibase.Platform.Connect.Components.Chat.Instance().send();
- $('#icon_send,#chatEmojis').addClass('hidden');
- $('.msg-compose-options').removeClass('hidden');
- $('#recordaudio').removeClass('hidden');
- $('.quotemessage_' + Chat.chatGroupId).remove('');
- Chat.fileitems = 0;
- Chat.attachments = [];
- if ($('.quotemessage_' + Chat.chatGroupId).text() != "" && $('#input_msg_send_chatapp').val() != "") {
- $('.quotemessage_' + Chat.chatGroupId).remove('');
- }
- Chat.istyping = true;
- let user = Chat.currentUser;
- let _packet = new Unibase.Platform.Connect.Server.Packets.Typing();
- _packet.FromUserId = user.userId;
- _packet.UserName = user.name;
- _packet.ToUserId = Number($('#private_id').val());
- _packet.ChatGroupId = Chat.chatGroupId;
- _packet.Isprivate = Chat.isPrivate;
- _packet.SessionId = user.sessionId;
- Unibase.Platform.Connect.Components.Chat.instance._chatter.onTypingStop(_packet, null);
- }
- });
- $('#txt_chats_clearSearch').click(function () {
- $(this).addClass('hidden');
- $('#txtSearchChats').val('').trigger('keyup');
- });
- $('#clearContactsSearch').click(function () {
- $(this).addClass('hidden');
- $('#txtSearchContacts').val('').trigger('keyup');
- });
- $('#chatEmojiIcon').click(function () {
- $('#chatEmojis').toggleClass('hidden');
- });
- $('#closeMsgMultiActionBtn').click(function () {
- $('#chatMsgHeader,.msg-input-wrap,.chatoptions-wrapper').removeClass('hidden');
- $('.msg-input-wrap').addClass('d-flex');
- $('#selectedMsgsCountHeader,.messageslist .msg-check').addClass('hidden');
- $('.msg-multiaction-btns').addClass('hidden');
- $('.message-checkbox').prop("checked", false);
- $('.selected-msgs-count').text(0);
- $('#chatFooter').removeClass('hidden');
- Chat.MultiSelect = [];
- });
- $('#closeChatPanel').click(function () {
- $(".settings-panel-close").click();
- if (Chat.isFullScreen) {
- Chat.isFullScreen = false;
- $('#cam_pic').length && instance.closecam();
- $('#chatPanelBodyWrap').html('').removeClass('chat-fullscreen').detach().appendTo('.settings-panel-wrap');
- }
- Chat.routes = [];
- });
- $('#viewMyProfile').click(function () {
- Chat.isPrivate = true;
- Chat.contactId = instance.currentUser.userId;
- instance.profileDetails('personal');
- });
- }
- autoAdjustMsgInputHeight() {
- const msgInput = $('#input_msg_send_chatapp');
- msgInput.css('height', '0px');
- const height = Math.min(20 * 4, msgInput[0].scrollHeight);
- msgInput.css('height', `${height}px`);
- }
- loadchats() {
- const instance = this;
- let chathtml = instance._chatTemplate.getChatTemplate();
- $("#chatPanelBodyWrap").html(chathtml);
- $(".biz-settings-panel").css({ "background": "white" });
- $(".notification-footer").addClass("d-none");
- instance.load(0, '', null);
- instance.loadCssFiles();
- instance.loadJsFiles();
- instance.loadEmojiCategories();
- if (Chat.isFullScreen) {
- instance.loadChatFullScreen();
- }
- Chat.routes = [];
- Chat.routes.push('chat-list');
- }
- loadJsFiles() {
- var jsfiles = Unibase.Platform.Connect.Components.Chat.Instance().jsFiles();
- Unibase.Platform.Helpers.FileCacheHelper.Instance().loadJsFiles(jsfiles, function () {
- Unibase.Platform.Connect.Components.Chat.Instance().getDefaultContacts();
- Unibase.Platform.Connect.Components.Chat.Instance().getRecentChats();
- });
- }
- getContactInfo(contactId = 0, ChatGroupId = 0) {
- var filter = ChatGroupId == 0 ? "contactId" : "chatGroupId";
- var filterValue = ChatGroupId == 0 ? contactId : ChatGroupId;
- var contacts = Chat.recentChats.find(x => x[filter] == filterValue);
- if (contacts == undefined) {
- contacts = Chat.contacts.find(x => x.contactId == contactId);
- }
- return contacts;
- }
- getDefaultContacts() {
- this._chatmanager.getChatContacts().then(function (response) {
- if (response.result != null && response.result.length > 0) {
- Chat.contacts = response.result;
- var countlength = Chat.contacts.length;
- var chatsplit = countlength % 4;
- while (true) {
- if (chatsplit != 0) {
- countlength = countlength - 1;
- chatsplit = countlength % 4;
- }
- if (chatsplit == 0) {
- break;
- }
- }
- Chat.contactsCount = countlength / 4;
- }
- });
- }
- getAppUrl() {
- if (Chat.appUrl == '') {
- Chat.appUrl = _appsettings.server_url();
- if (_appsettings.asset_url() != undefined && _appsettings.asset_url() != null && _appsettings.asset_url() != '') {
- Chat.appUrl = _appsettings.asset_url();
- }
- }
- return Chat.appUrl;
- }
- getContacts(term = "") {
- var contacts = Chat.contacts;
- if (term != "") {
- contacts = contacts.filter(x => x.contactName.toLowerCase().includes(term.toLowerCase()));
- }
- return contacts;
- }
- muteAlert() {
- var contactInfo = Chat.Instance().getContactInfo(Chat.contactId, Chat.chatGroupId);
- var text = contactInfo.isMute ? "Unmute " : "Mute ";
- Chat.Instance().chatPopup({
- message: text + contactInfo.contactName + " ?",
- buttons: {
- confirm: {
- label: text
- },
- cancel: {
- label: 'Cancel'
- }
- },
- callback: (result) => {
- if (result) {
- Unibase.Platform.Connect.Managers.ChatManager.Instance().MuteNotifications(Chat.chatGroupId).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- Chat.recentChats.find(x => x.contactId == Chat.contactId).isMute = response.result.isMute;
- var muteText = response.result.isMute ? "Unmute" : "Mute";
- $('.mute-option').text(muteText);
- if (response.result.isMute) {
- $(`.userChat_${Chat.chatGroupId} .mute-status-icon`).removeClass('hidden');
- }
- else {
- $(`.userChat_${Chat.chatGroupId} .mute-status-icon`).addClass('hidden');
- }
- }
- });
- }
- }
- });
- }
- loadCssFiles() {
- var csssfiles = Unibase.Platform.Connect.Components.Chat.Instance().cssFiles();
- Unibase.Platform.Helpers.FileCacheHelper.Instance().loadCssFiles(csssfiles, function () {
- });
- }
- Displaycontacts() {
- $('#chatHeaderNavTabs .active').removeClass('active');
- $('._btnDisplayUser').addClass('active');
- $('#txtSearchContacts').val("");
- $('.contacts_more').text(0);
- $(".chatapp-users-list").addClass("hidden");
- $(".div_ContactsList").removeClass("hidden");
- Chat.chatGroupId = 0;
- Chat.chatwindow = false;
- Chat.privatewindow = false;
- Chat.profiledetailswindow = false;
- $('.list-chat-contacts').html('');
- if ($.inArray('contact-list', Chat.routes) === -1) {
- Chat.routes.push('contact-list');
- }
- $('#txtSearchChats').val('');
- Unibase.Platform.Connect.Components.Chat.Instance().loadContacts();
- }
- loadContacts(IsSearch = false) {
- const instance = this;
- let term = $("#txtSearchContacts").val().toString().trim();
- var contacts = Chat.Instance().getContacts(term);
- var indexlength = 0;
- if (IsSearch) {
- $('.list-chat-contacts').html('');
- $('.contacts_more').text(0);
- }
- if (term != "") {
- $('.contacts-morebtn').addClass('d-none');
- }
- else {
- contacts = $.extend(true, [], contacts);
- var count = Number($('.contacts_more').text());
- if (Chat.contacts.length < 20) {
- Chat.contactsCount = Chat.contacts.length;
- }
- contacts = contacts.splice(count, Chat.contactsCount);
- $('.contacts_more').text(count + Chat.contactsCount);
- if (Chat.contacts.length <= Number($('.contacts_more').text())) {
- $('.contacts-morebtn').addClass('d-none');
- }
- else {
- $('.contacts-morebtn').removeClass('d-none');
- }
- indexlength = $('.first-letter-heading').length;
- }
- var html = instance._chatTemplate.getContactsTemplate(contacts);
- (IsSearch) ? $('.list-chat-contacts').html(html) : $('.list-chat-contacts').append(html);
- if (indexlength != 0) {
- var firstLetter = $('.first-letter-heading').get(indexlength - 1).innerText;
- var lastLetter = $('.first-letter-heading').get(indexlength).innerText;
- (firstLetter == lastLetter) ? $('.first-letter-heading').get(indexlength).remove() : '';
- }
- }
- makeACall() {
- $('#chatHeaderNavTabs .active').removeClass('active');
- $('._btnmakeacall').addClass('active');
- $('.div-chat-search').addClass('hidden');
- $(".list-chat-contacts,.list-groupchat").html('').append('<li class="d-flex align-items-center justify-content-center mt-4">No calls Found</li>');
- Chat.chatGroupId = 0;
- }
- multiaction() {
- var c = 1;
- for (var i = 0; i < c; i++) {
- if (!$('.more_msg').hasClass('d-none')) {
- $('.morediv').trigger('click');
- c++;
- }
- }
- $('.msg-check').removeClass('hidden');
- $('.message-body').not('.deleted-msg-body').find('.msg-check').removeClass('hidden');
- $('.msg-multiaction-btns').removeClass('hidden');
- $('.msg-input-wrap').addClass('hidden').removeClass('d-flex');
- $('#selectedMsgsCountHeader').removeClass('hidden');
- $('#chatMsgHeader').addClass('hidden');
- $('.chatoptions-wrapper').addClass('hidden');
- $(".selected-msgs-count").html(`${Chat.MultiSelect.length}`);
- }
- multiselect(event) {
- var id = $(event).attr("id");
- var chatid = id.split("_")[1];
- if ($(event).is(":checked")) {
- !Chat.MultiSelect.find(x => x == chatid) ? Chat.MultiSelect.push(chatid) : "";
- }
- else {
- Chat.MultiSelect = Chat.MultiSelect.filter(x => x != chatid);
- }
- $(".selected-msgs-count").html(`${Chat.MultiSelect.length}`);
- if (Chat.MultiSelect.length != 0) {
- $('.footer-multiaction').removeClass('disabled');
- }
- else {
- $('.footer-multiaction').addClass('disabled');
- }
- var a = Chat.chatlistarray.filter(x => x.fileName != null).map(y => y.chatId);
- var common = $.grep(a, function (element) {
- return $.inArray(element, Chat.MultiSelect) !== -1;
- });
- if (common.length != 0) {
- $('#copyicon').addClass('disabled');
- $('.star-icon').addClass('disabled');
- }
- else {
- if (Chat.MultiSelect.length != 0) {
- $('#copyicon').removeClass('disabled');
- $('.star-icon').removeClass('disabled');
- }
- }
- var b = Chat.chatlistarray.filter(x => x.isDelete).map(y => y.chatId);
- var common1 = $.grep(b, function (element) {
- return $.inArray(element, Chat.MultiSelect) !== -1;
- });
- if (common1.length != 0) {
- $('.footer-multiaction').addClass('disabled');
- $('.delete-icon').removeClass('disabled');
- }
- }
- MultiDelete() {
- const instance = this;
- instance.chatPopup({
- message: "Are you sure you want to delete?",
- buttons: {
- confirm: {
- label: 'Delete'
- },
- cancel: {
- label: 'Cancel'
- }
- },
- callback: function (result) {
- if (result) {
- var messages = Chat.MultiSelect;
- var data = { messages };
- instance._chatmanager.Deletemultiple(data).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- for (let i = 0; i < Chat.MultiSelect.length; i++) {
- $('.chat-messages_' + Chat.MultiSelect[i]).remove();
- }
- Chat.MultiSelect = [];
- }
- });
- }
- }
- });
- }
- multiplestar() {
- var Messages = Chat.MultiSelect;
- var data = { Messages };
- this._chatmanager.Starmultiple(data).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- for (let i = 0; i < Chat.MultiSelect.length; i++) {
- var result = response.result.find(x => x.chatId = Chat.MultiSelect[i]);
- Chat.chatlistarray[Chat.chatlistarray.findIndex(x => x.chatId == result.chatId)] = result;
- Chat.Instance().starMessageTemplate(result.chatId);
- }
- Chat.MultiSelect = [];
- }
- });
- }
- multiplecopy() {
- var messages = "";
- var msgarray = Chat.MultiSelect;
- for (var i = 0; i < msgarray.length; i++) {
- var msg = Chat.chatlistarray.find(x => x.chatId == msgarray[i]).message;
- messages += msg + '\n';
- }
- var textArea = document.createElement("textarea");
- textArea.value = messages;
- document.body.appendChild(textArea);
- textArea.select();
- document.execCommand("Copy");
- textArea.remove();
- Chat.MultiSelect = [];
- }
- BlockAlert() {
- var contactinfo = Chat.Instance().getContactInfo(Chat.contactId, 0);
- var text = Chat.isBlock ? "Unblock " + contactinfo.contactName + " to send message." : "Block " + contactinfo.contactName + " ?";
- Chat.Instance().chatPopup({
- message: text,
- buttons: {
- confirm: {
- label: Chat.isBlock ? "Unblock" : "Block"
- },
- cancel: {
- label: 'Cancel'
- }
- },
- callback: (result) => {
- if (result) {
- Unibase.Platform.Connect.Managers.ChatManager.Instance().blockOrunBlock(Chat.chatGroupId).then(function (response) {
- if (response.result != null) {
- Chat.isBlock = response.result.isBlock;
- Chat.recentChats.find(x => x.contactId == Chat.contactId).isBlock = Chat.isBlock;
- var blocktext = "Unblock";
- var successText = "User Blocked";
- if (!Chat.isBlock) {
- blocktext = "Block";
- successText = "User Unblocked";
- var reflastseen = Chat.recentChats.find(x => x.chatGroupId == Chat.chatGroupId).lastSeen;
- var lastseen = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocal(reflastseen);
- if (lastseen != "Invalid date") {
- $('.lastseen' + Chat.contactId).text(lastseen);
- $('.lastseen_' + Chat.contactId).attr('data-lastseen', reflastseen);
- }
- }
- else {
- $('.lastseen_' + Chat.contactId).text('');
- }
- MessageHelper.Instance().showSuccess(successText, '');
- $('.blkbtn-text').text(blocktext + "User");
- }
- else {
- alert("Failed to update");
- }
- });
- }
- }
- });
- }
- profileheader() {
- var profileheaderhtml = Chat.Instance()._chatTemplate.getprofileheader();
- $('#profileHeader').html(profileheaderhtml);
- }
- privatewindow(id) {
- return __awaiter(this, void 0, void 0, function* () {
- var contactElement = $(`#msgConvoItem_${id}`);
- Chat.contactId = +$(contactElement).attr("data-contactid");
- Chat.chatGroupId = +$(contactElement).attr("data-chatgroupid");
- var contactInfo = Chat.Instance().getContactInfo(Chat.contactId, Chat.chatGroupId);
- Chat.chatGroupId = contactInfo.chatGroupId;
- Chat.contactId = contactInfo.contactId;
- Chat.isPrivate = contactInfo.isPrivate;
- Chat.isBlock = contactInfo.isBlock;
- var unreadcount = Number(contactInfo.unReadMessagesCount);
- if (unreadcount > 0) {
- Chat.recentChats.find(x => x.chatGroupId == Chat.chatGroupId).unReadMessagesCount = 0;
- }
- var badgecount = Number($('#chatIconBadge').text()) - unreadcount;
- $('#chatIconBadge').text(badgecount);
- $('.unread_messages_' + Chat.chatGroupId).remove();
- if (badgecount <= 0) {
- $('#chatIconBadge').addClass('d-none').text(0);
- }
- const headerhtml = Chat.instance._chatTemplate.getPrivateWindowTemplate(contactInfo);
- $('#chatMsgHeader').html(headerhtml);
- if (Chat.chatGroupId != 0) {
- Chat.Instance().loadTyping(Chat.chatGroupId);
- }
- var muteText = contactInfo.isMute ? "Unmute" : "Mute";
- $('.mute-option').text(muteText);
- $('.messageslist').html('');
- Unibase.Platform.Connect.Components.Chat.chatlistarray = [];
- Chat.chatwindow = false;
- Chat.privatewindow = true;
- Chat.profiledetailswindow = false;
- $('.lastseen_' + Chat.contactId).text('');
- $('.morediv').attr("data-isfirst", 'true');
- $('.morediv').attr("data-moreindex", '0');
- $('.more_msg').addClass('d-none');
- $('#chatEmojiIcon').removeClass('d-none');
- if (!Chat.isFullScreen) {
- $('#chatConvoBody').removeClass('hidden');
- $('#chatsContactsSection').addClass('hidden');
- $('.chat_down').css('left', '88%');
- }
- else {
- this.highlightActiveChat();
- $('#chatMsgHeader,.msg-input-wrap').removeClass('hidden');
- $('.msg-input-wrap').addClass('d-flex');
- $('#selectedMsgsCountHeader,.msg-multiaction-btns').addClass('hidden');
- $('#chatTypingMsg').html('');
- $('#closePrivateWindowBtn').addClass('hidden');
- $('#fullScreenModal').modal('hide');
- $('#chatNoConvoMsgWrap').addClass('hidden');
- $('#chatConvoBody').removeClass('hidden');
- $('.chat_down').css('left', '98%');
- }
- Chat.routes.push('private-window');
- if (isMobileApp()) {
- $('#chatEmojiIcon').addClass('d-none');
- }
- yield Unibase.Platform.Connect.Managers.ChatManager.Instance().getChatsByGroupId(Chat.chatGroupId).then(function (response) {
- if (response.result != null && response.result.length > 0) {
- Unibase.Platform.Connect.Components.Chat.chatlistarray = response.result;
- if (contactInfo.draftMessage != "" && contactInfo.draftMessage != null && contactInfo.draftMessage != "null") {
- var draftmessage = JSON.parse(contactInfo.draftMessage);
- if (draftmessage.quote != undefined) {
- Chat.Instance().quoteMessage(draftmessage.quote);
- }
- $('#input_msg_send_chatapp').val(draftmessage.message);
- $('#icon_send').removeClass('hidden');
- $('#recordaudio').addClass('hidden');
- }
- Chat.Instance().LoadMessages();
- }
- });
- if (!contactInfo.isPrivate) {
- if (Chat.isBlock) {
- $('#chatFooter').addClass('hidden');
- $('.remove_template').removeClass('hidden');
- return;
- }
- else {
- Unibase.Platform.Connect.Managers.ChatManager.Instance().getChatRecipientsByGroupId(Chat.chatGroupId).then(function (response) {
- if (response.result != null && response.result.length > 0) {
- Chat.grpdetails = response.result.filter(x => x.isBlock == false);
- $('.lastseen_' + Chat.contactId).text(Chat.grpdetails.length + ' ' + 'Participants');
- }
- });
- }
- }
- else {
- if (!Chat.isBlock) {
- Chat.Instance().updatestatus();
- if (contactInfo.lastSeen != null && contactInfo.lastSeen != "null" && contactInfo.lastSeen != "" && contactInfo.lastSeen != undefined) {
- var date = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocal(contactInfo.lastSeen);
- var onlineIndex = Chat.connectedusers.findIndex(x => x == Chat.contactId);
- if (onlineIndex == -1)
- $('.lastseen_' + Chat.contactId).text(date);
- setInterval(Chat.Instance().refreshlastseen, 60000);
- }
- }
- }
- $('.remove_template').addClass('hidden');
- $('#chatFooter').removeClass('hidden');
- let _packet = new Unibase.Platform.Connect.Server.Packets.Connect();
- _packet.UserId = Chat.currentUser.userId;
- _packet.UserName = Chat.currentUser.name;
- _packet.ActiveChatGroupId = Chat.chatGroupId;
- _packet.SessionId = Chat.currentUser.sessionId;
- _packet.UnibaseId = Chat.currentUser.unibaseId;
- Unibase.Platform.Connect.Components.Chat.instance._chatter.updateActiveChatGroup(_packet, null);
- $('.chat_down').addClass('hidden');
- $('#input_msg_send_chatapp').focus();
- $('.simplebar-content-wrapper').scroll(function () {
- Chat.Instance().showchatdownicon();
- });
- });
- }
- LoadMessages() {
- if (Chat.chatlistarray.length > 0) {
- var index = Number($('.morediv').attr("data-moreindex"));
- var isFirst = ($('.morediv').attr('data-isfirst') === 'true');
- if (index == 0 && isFirst) {
- Chat.chatlistarray.sort((a, b) => a.messageSentDate > b.messageSentDate ? 1 : -1);
- index = Chat.chatlistarray.length - 1;
- $('.morediv').attr("data-isfirst", 'false');
- }
- var refindex = index - 20;
- $('.morediv').attr("data-moreindex", refindex);
- if (Chat.chatlistarray.length <= 20) {
- $('.more_msg').addClass('d-none');
- }
- else {
- $('.more_msg').removeClass('d-none');
- }
- var dateArray = [];
- for (let j = 0; j < 20; j++) {
- var html = '';
- if (index < 0) {
- $('.more_msg').addClass('d-none');
- $('.morediv').attr("data-isfirst", 'true');
- $('.morediv').attr("data-moreindex", '0');
- break;
- }
- var messageDate = moment.utc(Chat.chatlistarray[index].messageSentDate).format('MM-DD-YYYY');
- var dateindex = dateArray.findIndex(x => x == messageDate);
- if (dateindex == -1) {
- dateArray.push(messageDate);
- }
- html = Chat.Instance().loadconversation(Chat.chatlistarray[index]);
- index--;
- $('.messageslist').prepend(html);
- }
- for (let i = 0; i < dateArray.length; i++) {
- var getdatehtml = Chat.Instance().getMessageDate(dateArray[i]);
- if ($('#date_' + dateArray[i]).length != 0) {
- $('#date_' + dateArray[i]).remove();
- }
- $('.dateli_' + dateArray[i] + ':eq(0)').before(getdatehtml);
- }
- let lastelement = $('.date').first();
- if (isFirst) {
- lastelement = $('.chat-message-wrap').last();
- }
- if (lastelement[0] != undefined)
- lastelement[0].scrollIntoView();
- }
- }
- getMessageDate(messageDate) {
- var _datehelper = Unibase.Platform.Helpers.DateTimeHelper.Instance();
- var date = new Date();
- var d = messageDate.replace(/-/g, '/');
- var messageDateformat = _datehelper.formatLocalDateFirst(d);
- var today = _datehelper.formatLocalDateFirst(date);
- var yesterDay = _datehelper.formatLocalDateFirst(date.setDate(date.getDate() - 1));
- var senddate = (messageDateformat == today) ? senddate = "Today" : (messageDateformat == yesterDay) ? senddate = "Yesterday" : senddate = messageDateformat;
- return '<div class="date" id="date_' + messageDate + '">' + senddate + '</div>';
- }
- loadconversation(chatList, isNewMessage = false) {
- var hideinfo = '';
- const instance = this;
- var msghtml = "";
- let _userid = Chat.currentUser.userId;
- var msg;
- var messagealert;
- var lihtml;
- var showmsgstatus = "";
- var messageDate = moment.utc(chatList.messageSentDate).format('MM-DD-YYYY');
- var messageLength = isNewMessage ? $('.chat-message-wrap').length - 1 : 0;
- var preElement = $('.chat-message-wrap:eq(' + messageLength + ')');
- var previousDivDate = preElement.attr('data-MessageDate');
- var previousDivTime = preElement.attr('data-MessageTime');
- var localDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDate(chatList.messageSentDate);
- var msgTime = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithT(chatList.messageSentDate);
- msgTime = msgTime.replace(localDate, "");
- var prevFromUserName = preElement.attr('data-fromusername');
- var showfromuser = "";
- if (chatList.fromUserName == prevFromUserName && !Chat.isPrivate) {
- if (!isNewMessage) {
- preElement.find(".fromUserIdname").addClass('hidden');
- }
- else {
- showfromuser = "hidden";
- }
- }
- let isMsgTimeMatch = (msgTime == previousDivTime && previousDivDate == messageDate && prevFromUserName == chatList.fromUserName);
- if (isMsgTimeMatch && isNewMessage) {
- preElement.find('.time').addClass('hidden');
- isMsgTimeMatch = false;
- }
- const chatId = chatList.chatId;
- msg = chatList.message;
- if (msg.startsWith('*') && msg.endsWith('*')) {
- msg = msg.replaceAll('*', '');
- msg = '<b>' + msg + '</b>';
- }
- else if (msg.startsWith('_') && msg.endsWith('_')) {
- msg = msg.replaceAll('_', '');
- msg = '<i>' + msg + '</i>';
- }
- else if (msg.startsWith('~') && msg.endsWith('~')) {
- msg = msg.replaceAll('~', '');
- msg = '<strike>' + msg + '</strike>';
- }
- if (msg.includes('') || msg.includes('\n')) {
- msg = msg.replace(/ /g, ' ').replaceAll(/\n/g, '<br>');
- }
- if ($.trim(msg).length > 400) {
- var fullmsg = msg;
- msg = fullmsg.substring(0, 400);
- var remainmsg = fullmsg.substring(400, $.trim(fullmsg).length);
- msg = msg + '<span class="doted_' + chatId + '">....</span><span class="read-more_' + chatId + ' cursor-pointer" data-chatid=' + chatId + ' style="color:#00B0FF" onclick="Unibase.Platform.Connect.Components.Chat.Instance().readmore(\'' + chatId + '\')">Read more</span><span class="remain-data_' + chatId + ' hidden">' + remainmsg + '</span>';
- }
- if (chatList.groupMessageType != 0) {
- msghtml += Unibase.Platform.Connect.Components.Chat.Instance().groupdefaultmessages(chatList);
- return msghtml;
- }
- if (chatList.isDelete) {
- showmsgstatus = "hidden";
- if (_userid == chatList.fromUserId) {
- messagealert = "You deleted this message";
- }
- else {
- messagealert = "This message was deleted";
- }
- msg = '<span class="delete-msg"><i>' + messagealert + '</i><span class="btn btn-icon btn-icon-circle btn-icon-style-2 btn-soft-danger d-20 ml-1 cursor-pointer del-icon" onclick="Unibase.Platform.Connect.Components.Chat.Instance().deleteMessage(\'' + chatId + '\')"><span class="btn-icon-wrap"><i class="las la-trash-alt font-14"></i></span></span></span>';
- fileimagepath = msg;
- }
- if (chatList.messageType == Unibase.Platform.Connect.Enums.MessageType.Url && !chatList.isDelete) {
- msg = '<a href="' + msg + '" target="_blank">' + msg + '</a>';
- }
- if (chatList.quotedMessage != null) {
- msg = Unibase.Platform.Connect.Components.Chat.Instance().quotetemplate(chatList);
- }
- if (chatList.isEdit && !chatList.isDelete) {
- msg = `<span class="chat-editmsg">${msg}</span><span class="btn btn-icon btn-primary btn-icon-circle btn-xs d-20 ml-10 cursor-default edit-msg-icon"><span class="btn-icon-wrap"><i class="las la-pencil-alt"></i></span></span>`;
- }
- var forward = '<li class="forward"><a class="dropdown-item" href = "javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().forwardDesign(\'' + chatId + '\') ">Forward</a></li>';
- var quote = '<li class="quote"><a class="dropdown-item" href="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().quoteMessage(\'' + chatId + '\')";>Quote</a></li>';
- var edit = '<li class="edit"><a class="dropdown-item" href ="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().editMessage(\'' + chatId + '\')";>Edit</a></li>';
- var copy = '<li class="copy"><a class="dropdown-item" href="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().copyMessage(\'' + chatId + '\')";>Copy</a></li>';
- var deletemsg = '<li class="delete"><a class="dropdown-item" href="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().deleteMessage(\'' + chatId + '\')"><span>Delete</span></a></li>';
- var starmessage = '<li class="star"><a class="dropdown-item" id="unstar" href="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().StarMessage(\'' + chatId + '\')";>Star message</a></li>';
- var RemoveStarmessage = '<li class="unstar"><a class="dropdown-item" id="unstar" href="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().StarMessage(\'' + chatId + '\')";>Unstar message</a></li>';
- var deleteforeveryone = '<li class="deleteforeveryone"><a class="dropdown-item" href="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().deleteForEveryone(\'' + chatId + '\')"><span>Delete for everyone</span></a></li>';
- var fromUserIdhtml = "";
- var starmsg = starmessage;
- let isStarMsg = false;
- if (!chatList.isDelete) {
- if (chatList.isStared == null) {
- chatList.isStared = "";
- }
- if (chatList.isStared.includes(_userid)) {
- isStarMsg = true;
- starmsg = RemoveStarmessage;
- msg = `<span>${msg}</span><a href="javascript:;" class="btn btn-icon btn-icon-circle btn-primary btn-xs d-20 star-msg-icon"><span class="btn-icon-wrap"><i class="icon dripicons-star"></i></span></a>`;
- }
- }
- if (Chat.isPrivate) {
- showfromuser = "hidden";
- }
- if (chatList.fromUserName != Chat.currentUser.name) {
- fromUserIdhtml = '<span><span class="fromUserIdname ' + showfromuser + ' font-10" style="color:#dd6767">' + chatList.fromUserName + '<hr class="ma-0 mb-5"></span><span class="message">' + msg + '</span></span>';
- if (chatList.filePath != null) {
- fromUserIdhtml = '<span><span class="fromUserIdname ' + showfromuser + ' font-10" style="color:#dd6767">' + chatList.fromUserName + '<hr class="ma-0 mb-5"></span></span>';
- }
- }
- const showMsgTime = isMsgTimeMatch ? 'hidden' : '';
- var liclassList = (chatList.fromUserId == Chat.currentUser.userId) ? "fromuserlist" : "touserist";
- if (chatList.filePath != null) {
- var audiovoice = '<audio controls="" style="width: 250px;"><source src="' + chatList.filePath + '" type="audio/webm"></audio>';
- const fileNameWithType = chatList.fileName;
- const fileName = fileNameWithType.split('.').slice(0, -1).join('.');
- const fileType = chatList.fileType.split('/').pop();
- var fileimagepath;
- var imagepath = [];
- let imgClass = '';
- var filepath = Chat.Instance().GetFilePath(chatList.filePath);
- msg = (msg == "null") ? "" : '<div class="message">' + msg + '</div>';
- let audioplayBtnHtml = '';
- imagepath[0] = "" + filepath + "";
- var download = "Unibase.Platform.Connect.Components.Chat.Instance().downloadfile(\'" + imagepath[0] + "'\,'" + chatId + "')";
- var preview = "Unibase.Platform.Connect.Components.Chat.Instance().filePreview(\'" + imagepath[0] + "'\)";
- if (chatList.fileType.match('image.*')) {
- fileimagepath = Chat.Instance().getFilePath(filepath);
- imagepath[1] = "" + fileimagepath + "";
- }
- else {
- if (chatList.fileType.match('audio.*')) {
- imgClass = 'audio-thumb-img';
- audioplayBtnHtml = `<span class="msg-play-btn"><a href="javascript:;" class="btn btn-icon btn-icon-circle btn-primary btn-xs btn-rounded mr-5" onclick=${preview}><span class="btn-icon-wrap"><i class="las la-play font-18"></i></span></a></span>`;
- }
- if (chatList.fileType.includes('audio') || chatList.fileType.includes('video')) {
- fileimagepath = Unibase.Platform.Connect.Components.Chat.Instance().getfileThumbnail(chatList.fileType);
- }
- else {
- fileimagepath = Unibase.Platform.Connect.Components.Chat.Instance().getfileThumbnail(chatList.fileName.substring(chatList.fileName.lastIndexOf('.') + 1));
- }
- }
- msghtml += '<li class="chat-messages_' + chatId + ' chat-message-wrap dateli_' + messageDate + ' ' + liclassList + '" data-chatid=' + chatId + ' data-isTimeMatch=' + isMsgTimeMatch + ' data-MessageDate=' + messageDate + ' data-MessageTime="' + msgTime + '" data-fromusername="' + chatList.fromUserName + '"><div class="messagemedia-body">';
- if (_userid == chatList.fromUserId) {
- if (chatList.messageDeliveredDate != null) {
- if (chatList.messageReadDate != null) {
- k = '<span class="msg-status msg_status ' + showmsgstatus + '"><i class="zmdi zmdi-check-all"></i></span>';
- }
- else {
- k = '<span class="msg-status-delivery msg_status ' + showmsgstatus + '"><i class="zmdi zmdi-check-all"></i></span>';
- }
- if (chatList.fileName.indexOf('voicemsg') != -1) {
- msghtml += '<div class="sent-messages"><div class="message-div"><div class="single-message"><div class="msg-check hidden"><input type="checkbox" onclick="Unibase.Platform.Connect.Components.Chat.Instance().multiselect(this)" id="msg-select_' + chatList.chatId + '" class="message-checkbox" value="' + chatList.chatId + '" name="selected_messages" ></div><div class="message-wrapper" id="msg-action" ondblclick="Unibase.Platform.Connect.Components.Chat.Instance().multiaction()"><span class="message-span flex-grow-1">' + audiovoice + '</span>';
- }
- else {
- msghtml += '<div class="sent-messages"><div class="message-div"><div class="single-message"><div class="msg-check hidden"><input type="checkbox" onclick="Unibase.Platform.Connect.Components.Chat.Instance().multiselect(this)" id="msg-select_' + chatList.chatId + '" class="message-checkbox" value="' + chatList.chatId + '" name="selected_messages" ></div><div class="message-wrapper" id="msg-action" ondblclick="Unibase.Platform.Connect.Components.Chat.Instance().multiaction()">' + audioplayBtnHtml + '<span class="message-span flex-grow-1"><a class="download_img_preview" href="javascript:void(0);" onclick="' + preview + '"><img class="thumb_file loadimg img-fluid "' + imgClass + '" id = "loadedFiles_"' + chatId + '" onerror="ReloadImage(event)" src="' + fileimagepath + '" title="' + fileNameWithType + '" data-dynamic="1"></a><div class="file_name d-flex align-items-center font-10" style="width:90px" title="' + fileNameWithType + '"><span class="text-truncate">' + fileName + '</span><span class="flex-shrink-0 text-truncate w-30">.' + fileType + '</span></div></span><span class="message-download"><a class="btn btn-icon btn-icon-circle btn-rounded btn-outline-teal download-btn btn-xs ml-10 downloadfiles_'
- + chatId + '"href = "javascript:void(0);" download><span class="btn-icon-wrap"><i class="las la-download font-18" onclick = "' + download + '"></i></span></a></span>';
- }
- msghtml += `<div class="flex-between-center flex-basis-100 c-gap-10 border-top" style="margin-top:2px;padding-top:2px;">${msg}${k}</div>`;
- hideinfo = '';
- }
- else {
- if (chatList.fileName.indexOf('voicemsg') != -1) {
- msghtml += '<div class="sent-messages"><div class="message-div"><div class="single-message"><div class="msg-check hidden"><input type="checkbox" onclick="Unibase.Platform.Connect.Components.Chat.Instance().multiselect(this)" id="msg-select_' + chatList.chatId + '" class="message-checkbox" value="' + chatList.chatId + '" name="selected_messages" ></div><div class="message-wrapper" id="msg-action" ondblclick="Unibase.Platform.Connect.Components.Chat.Instance().multiaction()"><span class="message-span flex-grow-1">' + audiovoice + '</span><div class="flex-between-center flex-basis-100 c-gap-10 border-top" style="margin-top:2px;padding-top:2px;"><span class="msg-status msg_status ' + showmsgstatus + '"><i class="zmdi zmdi-check"></i></span></div>';
- }
- else {
- msghtml += '<div class="sent-messages"><div class="message-div"><div class="single-message"><div class="msg-check hidden"><input type="checkbox" onclick="Unibase.Platform.Connect.Components.Chat.Instance().multiselect(this)" id="msg-select_' + chatList.chatId + '" class="message-checkbox" value="' + chatList.chatId + '" name="selected_messages" ></div><div class="message-wrapper" id="msg-action" ondblclick="Unibase.Platform.Connect.Components.Chat.Instance().multiaction()">' + audioplayBtnHtml + '<span class="message-span flex-grow-1"><a class="download_img_preview" href="javascript:void(0);" onclick="' + preview + '"><img class="thumb_file loadimg img-fluid' + imgClass + '" id = "loadedFiles_' + chatId + '" onerror="ReloadImage(event)" src="' + fileimagepath + '" title="' + fileNameWithType + '" data-dynamic="1"></a><div class="file_name d-flex align-items-center font-10" style="width:90px" title="' + fileNameWithType + '"><span class="text-truncate">' + fileName + '</span><span class="flex-shrink-0 text-truncate w-30">.' + fileType + '</span></div></span><span class="message-download"><a class="btn btn-icon btn-icon-circle btn-rounded btn-outline-teal download-btn btn-xs ml-10 downloadfiles_' + chatId + '"href = "javascript:void(0);" download><span class="btn-icon-wrap"><i class="las la-download font-18" onclick = "' + download + '"></i></span></a></span><div class="flex-between-center flex-basis-100 c-gap-10 border-top" style="margin-top:2px;padding-top:2px;"> ' + msg + '<span class="msg-status msg_status ' + showmsgstatus + '"><i class="zmdi zmdi-check"></i></span></div>';
- }
- Chat.isPrivate ? hideinfo = 'hidden' : hideinfo = '';
- }
- var info = '<li class="info ' + hideinfo + '"><a class="dropdown-item" href="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().messageinfo(\'' + chatId + '\')"><span>Info</span></a></li>';
- lihtml = chatList.isDelete ? deletemsg : (forward + quote + deletemsg + deleteforeveryone + info);
- msghtml += `</div><div class="chatoptions-wrapper mr-10"><a class="chatoptions btn btn-flush-biz-theme btn-icon btn-rounded d-20 flush-soft-hover" href="javascript:void(0);" id="chatoptions" data-toggle="dropdown"><span class="btn-icon-wrap"><i class="icon dripicons-dots-3 chatoptions-icon text-dark"></i></span></a><ul class="dropdown-menu">${lihtml}</ul></div></div><div class="time ${showMsgTime}" data-msgtime='${msgTime}'>${msgTime}</div></div></div></div></li>`;
- }
- else if (chatList.toUserId != 0 || !Chat.isPrivate) {
- if (chatList.fileName.indexOf('voicemsg') != -1) {
- msghtml += '<div class="recived-messages"><div class="message-div"><div class="single-message"><div class="msg-check hidden"><input type="checkbox" onclick="Unibase.Platform.Connect.Components.Chat.Instance().multiselect(this)" id="msg-select_' + chatList.chatId + '" class="message-checkbox" value="' + chatList.chatId + '" name="selected_messages" ></div><div class="message-wrapper" id="msg-action" ondblclick="Unibase.Platform.Connect.Components.Chat.Instance().multiaction()"><span class="message-span flex-grow-1">' + fromUserIdhtml + audiovoice + '</span><div class="border-top" style="margin-top:2px;padding-top:2px;"></div>';
- }
- else {
- msghtml += '<div class="recived-messages"><div class="message-div"><div class="single-message"><div class="msg-check hidden"><input type="checkbox" onclick="Unibase.Platform.Connect.Components.Chat.Instance().multiselect(this)" id="msg-select_' + chatList.chatId + '" class="message-checkbox" value="' + chatList.chatId + '" name="selected_messages" ></div><div class="message-wrapper" id="msg-action" ondblclick="Unibase.Platform.Connect.Components.Chat.Instance().multiaction()">' + audioplayBtnHtml + '<span class="message-span flex-grow-1">' + fromUserIdhtml + '<a class="download_img_preview" href ="javascript:void(0);" onclick="' + preview + '"><img class="thumb_file loadimg img-fluid ' + imgClass + '" id="loadedFiles_' + chatId + '" src="' + fileimagepath + '" onerror="ReloadImage(event)" title="' + fileNameWithType + '" data-dynamic="1"></a><div class="file_name d-flex align-items-center font-10" style="width:90px" title="' + fileNameWithType + '"><span class="text-truncate">' + fileName + '</span><span class="flex-shrink-0 text-truncate w-30">.' + fileType + '</span></div></span><span class="message-download"><a class="btn btn-icon btn-icon-circle btn-rounded btn-outline-teal download-btn btn-xs ml-10 downloadfiles_' + chatId + '" href = "javascript:void(0);" download><span class="btn-icon-wrap"><i class="las la-download font-18" onclick="' + download + '"></i></span></a></span><div class="border-top" style="margin-top:2px;padding-top:2px;">' + msg + '</div>';
- }
- lihtml = chatList.isDelete ? deletemsg : (forward + deletemsg);
- msghtml += `</div><div class="chatoptions-wrapper ml-10"><a class="chatoptions btn btn-flush-biz-theme btn-icon btn-rounded d-20 flush-soft-hover" href="javascript:void(0);" id="chatoptions" data-toggle="dropdown"><span class="btn-icon-wrap"><i class="icon dripicons-dots-3 chatoptions-icon text-dark"></i></span></a><ul class="dropdown-menu">${lihtml}</ul></div></div><div class="time ${showMsgTime}" data-msgtime='${msgTime}'>${msgTime}</div></div></div></div></li>`;
- }
- }
- else {
- let emojiFontSize = instance.getEmojiFontSize(msg);
- msghtml += `<li class="chat-messages_${chatId} chat-message-wrap dateli_${messageDate} ${liclassList}" data-isTimeMatch=${isMsgTimeMatch} data-chatid='${chatId}' data-MessageTime='${msgTime}' data-MessageDate='${messageDate}' data-fromusername='${chatList.fromUserName}'><div class="message-body ${isMsgTimeMatch ? 'mb-5' : 'mb-10'} ${chatList.isDelete ? 'deleted-msg-body' : ''} ${isStarMsg ? 'star-msg-body' : ''}">`;
- if (_userid == chatList.fromUserId) {
- var k = "";
- if (chatList.messageDeliveredDate != null) {
- k = '<span class="msg-status-delivery ml-1 msg_status ' + showmsgstatus + '"><i class="zmdi zmdi-check-all"></i></span>';
- if (chatList.messageReadDate != null) {
- k = '<span class="msg-status msg_status ' + showmsgstatus + '"><i class="zmdi zmdi-check-all"></i></span>';
- }
- msghtml += '<div class="sent-messages"><div class="message-div"><div class="single-message"><div class="msg-check hidden"><input type="checkbox" onclick="Unibase.Platform.Connect.Components.Chat.Instance().multiselect(this)" id="msg-select_' + chatList.chatId + '" class="message-checkbox" value="' + chatList.chatId + '" name="selected_messages" ></div><div class="message-wrapper" id="msg-action" ondblclick="Unibase.Platform.Connect.Components.Chat.Instance().multiaction()"><span class="message-span" id="message_' + chatId + '"><span class="' + emojiFontSize + '">' + msg + '</span>' + k + '</span></div>';
- hideinfo = '';
- }
- else {
- msghtml += '<div class="sent-messages"><div class="message-div"><div class="single-message"><div class="msg-check hidden"><input type="checkbox" onclick="Unibase.Platform.Connect.Components.Chat.Instance().multiselect(this)" id="msg-select_' + chatList.chatId + '" class="message-checkbox" value="' + chatList.chatId + '" name="selected_messages"></div><div class="message-wrapper" id="msg-action" ondblclick="Unibase.Platform.Connect.Components.Chat.Instance().multiaction()"><span class="message-span ' + emojiFontSize + '" id="message_' + chatId + '">' + msg + '</span><span class="msg-status msg_status ' + showmsgstatus + '"><i class="zmdi zmdi-check"></i></span></div>';
- Chat.isPrivate ? hideinfo = 'hidden' : hideinfo = '';
- }
- var info = '<li class="info ' + hideinfo + '"><a class="dropdown-item" href="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().messageinfo(\'' + chatId + '\')"><span>Info</span></a></li>';
- lihtml = chatList.isDelete ? deletemsg : (forward + quote + edit + copy + deletemsg + deleteforeveryone + info + starmsg);
- msghtml += `<div class="chatoptions-wrapper mr-10"><a class="chatoptions btn btn-flush-biz-theme btn-icon btn-rounded d-20 flush-soft-hover" href="javascript:void(0);" id="chatoptions" data-toggle="dropdown"><span class="btn-icon-wrap"><i class="icon dripicons-dots-3 chatoptions-icon text-dark"></i></span></a><ul class="dropdown-menu" id="drpdwn_${chatId}">${lihtml}</ul></div></div><div class="time ${showMsgTime}" data-msgtime='${msgTime}'>${msgTime}</div></div></div></div></li>`;
- }
- else if (chatList.toUserId != 0 || !Chat.isPrivate) {
- let emojiFontSize = instance.getEmojiFontSize(msg);
- msghtml += '<div class="recived-messages"><div class="message-div"><div class="single-message"><div class="msg-check hidden"><input type="checkbox" onclick="Unibase.Platform.Connect.Components.Chat.Instance().multiselect(this)" id="msg-select_' + chatList.chatId + '" class="message-checkbox" value="' + chatList.chatId + '" name="selected_messages"></div><div class="message-wrapper" id="msg-action" ondblclick="Unibase.Platform.Connect.Components.Chat.Instance().multiaction()"><span class="message-span ' + emojiFontSize + '" id="message_' + chatId + '">' + fromUserIdhtml + '</span></div>';
- lihtml = chatList.isDelete ? deletemsg : (forward + quote + copy + deletemsg + starmsg);
- msghtml += `<div class="chatoptions-wrapper ml-10"><a class="chatoptions btn btn-flush-biz-theme btn-icon btn-rounded d-20 flush-soft-hover" href="javascript:void(0);" id="chatoptions" data-toggle="dropdown"><span class="btn-icon-wrap"><i class="icon dripicons-dots-3 chatoptions-icon text-dark"></i></span></a><ul class="dropdown-menu" id="drpdwn_${chatId}">${lihtml}</ul></div></div><div class="time ${showMsgTime}" data-msgtime='${msgTime}'>${msgTime}</div></div></div></li></div></div>`;
- }
- $('.delete-msg').parent('.message-wrapper').css('background-color', '#fff1f1');
- }
- return msghtml;
- }
- messageinfo(chatid) {
- const instance = this;
- const html = instance._chatTemplate.getMsgInfoBodyHtml();
- if (Chat.isFullScreen) {
- $('#fullScreenModalContent').html(html);
- $('#fullScreenModal').modal('show');
- }
- else {
- $('#messageInfoSection').html(html).removeClass('hidden');
- $('#chatConvoBody').addClass('hidden');
- }
- Unibase.Platform.Connect.Managers.ChatManager.Instance().messageinfo(chatid).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- $('#msgInfoTxt .msg-span').text(response.message);
- if (Chat.isPrivate) {
- $('.deliver').html('Delivered at');
- $('.read').html('Read at');
- if (response.result.messageDeliveredDate != null) {
- var b = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime(response.result.messageDeliveredDate);
- var ddate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithT(b);
- var html = `<li class="list-group-item px-1 py-2 flex-between-center position-relative delivered-user">
- <a href="javascript:;" class="d-flex align-items-center c-gap-10 w-100 mnw-0">
- <div class="media-body flex-grow-1 mnw-0 d-flex flex-column justify-content-center"><div class="flex-between-center c-gap-10 text-dark font-weight-500 font-15" title="${ddate}"><span class="text-truncate">${ddate}</span></div>
- <div class="user-about hidden"></div></div></a></li>`;
- $('.delivereduserslist').html(html).removeClass('hidden');
- if (response.result.messageReadDate != null) {
- var b = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatServerDateTime(response.result.messageReadDate);
- var rdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithT(b);
- var html = `<li class="list-group-item px-1 py-2 flex-between-center position-relative delivered-user">
- <a href="javascript:;" class="d-flex align-items-center c-gap-10 w-100 mnw-0">
- <div class="media-body flex-grow-1 mnw-0 d-flex flex-column justify-content-center"><div class="flex-between-center c-gap-10 text-dark font-weight-500 font-15" title="${rdate}"><span class="text-truncate">${rdate}</span></div>
- <div class="user-about hidden"></div></div></a></li>`;
- $('.readuserslist').html(html).removeClass('hidden');
- }
- }
- }
- else {
- $('.deliver').html('Delivered To');
- $('.read').html('Read by');
- let recievedusers = response.result.recievedUsers;
- let readusers = response.result.readUsers;
- if (recievedusers != null) {
- recievedusers = recievedusers.split('|');
- recievedusers = recievedusers.filter(x => x !== '');
- let deliveredUsersHtml = '';
- if (recievedusers.length) {
- for (let i = 0; i < recievedusers.length; i++) {
- const contact = Chat.grpdetails.find(x => x.recipientId == recievedusers[i]);
- if (contact != null) {
- const contactName = contact.contactName;
- const avatarHtml = instance._chatTemplate.getUserAvatarHtml(contact);
- deliveredUsersHtml += `<li class="list-group-item px-1 py-2 flex-between-center position-relative delivered-user" id="deliveredUser_${recievedusers[i]}">
- <a href="javascript:;" class="d-flex align-items-center c-gap-10 w-100 mnw-0">${avatarHtml}
- <div class="media-body flex-grow-1 mnw-0 d-flex flex-column justify-content-center"><div class="flex-between-center c-gap-10 text-dark font-weight-500 font-15" title="${contactName}"><span class="text-truncate">${contactName}</span></div>
- <div class="user-about hidden"></div></div></a></li>`;
- }
- }
- $('.delivereduserslist').html(deliveredUsersHtml).removeClass('hidden');
- }
- }
- if (readusers != null) {
- readusers = readusers.split('|');
- let readUserHtml = '';
- readusers = readusers.filter(x => x !== '');
- if (readusers.length) {
- for (let i = 0; i < readusers.length; i++) {
- const contact = Chat.grpdetails.find(x => x.recipientId == readusers[i]);
- const contactName = contact.contactName;
- const avatarHtml = instance._chatTemplate.getUserAvatarHtml(contact);
- readUserHtml += `<li class="list-group-item px-1 py-2 flex-between-center position-relative delivered-user" id="readUser_${readusers[i]}">
- <a href="javascript:;" class="d-flex align-items-center c-gap-10 w-100 mnw-0">${avatarHtml}
- <div class="media-body flex-grow-1 mnw-0 d-flex flex-column justify-content-center"><div class="flex-between-center c-gap-10 text-dark font-weight-500 font-15" title="${contactName}"><span class="text-truncate">${contactName}</span></div>
- <div class="user-about hidden"></div></div></a></li>`;
- }
- $('.readuserslist').html(readUserHtml).removeClass('hidden');
- if (recievedusers == null) {
- $('.delivereduserslist').html(readUserHtml).removeClass('hidden');
- }
- }
- }
- }
- }
- });
- }
- closeMsgInfo() {
- if (Chat.isFullScreen) {
- $('#fullScreenModal').modal('hide');
- }
- else {
- $('#messageInfoSection').addClass('hidden');
- $('#chatConvoBody').removeClass('hidden');
- }
- }
- quotetemplate(chat) {
- var msg;
- var quotedmessage = chat.quotedMessage;
- if (quotedmessage.includes('\n') || quotedmessage.includes('')) {
- quotedmessage = quotedmessage.replace(/\n/g, '<br>');
- }
- if (chat.fileType != null) {
- var quotedthumnail;
- if (chat.fileType != null) {
- if (chat.fileType.match('image.*')) {
- quotedthumnail = chat.quotedMessage;
- }
- else {
- if (chat.fileType.includes('audio') || chat.fileType.includes('video')) {
- quotedthumnail = Unibase.Platform.Connect.Components.Chat.Instance().getfileThumbnail(chat.fileType);
- }
- else {
- quotedthumnail = Unibase.Platform.Connect.Components.Chat.Instance().getfileThumbnail(chat.quotedMessage.substring(chat.quotedMessage.lastIndexOf('.') + 1));
- }
- }
- quotedmessage = '<img class="thumb_file loadimg d-40" onerror ="ReloadImage(event)" src ="' + quotedthumnail + '" data-dynamic="1">';
- }
- }
- msg = '<div class="quotemessage"><em><i class="fa fa-quote-left mr-5"></i>' + quotedmessage + '</em><div class="normalmessage" style="width:fit-content;">' + chat.message + '</div></div>';
- return msg;
- }
- timeAnddateFormat(unformatdate) {
- if (unformatdate.toString().includes('GMT')) {
- unformatdate = moment.utc(unformatdate).format('MM/DD/YYYY hh:mm:ss');
- }
- unformatdate = unformatdate.replace(/-/g, '/').replace('T', ' ').split('.')[0];
- var msgdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDate(unformatdate);
- var currentdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDate(new Date());
- var yesterday = new Date();
- var previousdate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDate(yesterday.setDate(yesterday.getDate() - 1));
- if (msgdate == currentdate) {
- var date = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithT(unformatdate);
- msgdate = date.replace(msgdate, '');
- }
- else if (previousdate == msgdate) {
- msgdate = "Yesterday";
- }
- return msgdate;
- }
- groupdefaultmessages(chat) {
- var msghtml = "";
- var messageDate = moment(chat.messageSentDate).format('MM-DD-YYYY');
- var groupactivitytemplate = chat.message.replace(Chat.currentUser.name, "You");
- if (chat.groupMessageType == 8) {
- var messages = groupactivitytemplate.split(",");
- var imagepath = messages[1].split("|");
- var image1 = '<img class="thumb_file loadimg rounded-circle d-20" onerror = "ReloadImage(event)" src = "' + imagepath[0] + '" data-dynamic="1">';
- var image2 = '<img class="thumb_file loadimg d-20 rounded-circle" onerror = "ReloadImage(event)" src = "' + imagepath[1] + '" data-dynamic="1">';
- groupactivitytemplate = messages[0] + ` ${image1} <span class="faplay"><i class="fa fa-play"></i></span>${image2}`;
- }
- msghtml += '<div class="admindetails dateli_' + messageDate + '"><div class="admin-msg flex-center c-gap-10">' + groupactivitytemplate + '</div></div>';
- return msghtml;
- }
- getfileThumbnail(filetype) {
- var imgShow = "";
- if (filetype.match('pdf.*')) {
- imgShow = 'tenants//default//documenttypes//pdf.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.File;
- }
- else if (filetype.match('wordprocessingml.*')) {
- imgShow = 'tenants//default//documenttypes//word.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.File;
- }
- else if (filetype.match('html.*') || filetype.match('cs.*') || filetype.match('ts.*') || filetype.match('js.*')) {
- imgShow = 'tenants//default//documenttypes//code.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.File;
- }
- else if (filetype.match('txt.*')) {
- imgShow = 'tenants//default//documenttypes//document.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.File;
- }
- else if (filetype.match('csv.*')) {
- imgShow = 'tenants//default//documenttypes//csv.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.File;
- }
- else if (filetype.match('zip.*')) {
- imgShow = 'tenants//default//documenttypes//zip.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.File;
- }
- else if (filetype.match('spreadsheetml.*') || filetype.match('excel.*')) {
- imgShow = 'tenants//default//documenttypes//excel.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.File;
- }
- else if (filetype.match('rar.*')) {
- imgShow = 'tenants//default//documenttypes//rar.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.File;
- }
- else if (filetype.match('exe.*')) {
- imgShow = 'tenants//default//documenttypes//exe.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.File;
- }
- else if (filetype.match('audio.*')) {
- imgShow = 'tenants//default//documenttypes//audio.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.Audio;
- }
- else if (filetype.match('mpeg.*') || filetype.match('video.*')) {
- imgShow = 'tenants//default//documenttypes//video.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.Video;
- }
- else if (filetype.match('image.*')) {
- imgShow = 'tenants//default//documenttypes//image.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.Image;
- }
- else {
- imgShow = 'tenants//default//documenttypes//file.png';
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.Unknown;
- }
- return imgShow;
- }
- hidestatus(chatgroupid, contactname) {
- var contactid = Chat.contacts.find(x => x.contactName == contactname).contactId;
- $('.user-last-chat_' + chatgroupid).removeClass('hidden');
- $('.typing_active_' + chatgroupid).addClass('hidden').text('');
- var contacts = $('.typing_active_' + chatgroupid).attr('data-typingcontacts').replace(contactname, '');
- if (contacts == '') {
- $('.typing_active_' + chatgroupid).addClass('hidden');
- $('.typing').addClass('hidden');
- }
- else {
- var text = contacts.replace(/|/g, '&');
- if (text.startsWith('&')) {
- text = text.replace('&', '');
- }
- $('.typing_active_' + chatgroupid).text(text);
- }
- $('.typing_active_' + chatgroupid).attr('data-typingcontacts', contacts);
- $('.typing').find('.typingspan_' + contactid).remove();
- }
- quoteMessage(chatid) {
- Chat.chatid = chatid;
- var istext = true;
- let index = Chat.chatlistarray.findIndex(x => x.chatId == Chat.chatid);
- if (index == -1)
- return;
- var msg = Chat.chatlistarray[index].message;
- $('#input_msg_send_chatapp').focus();
- msg = msg.replace(/<br>/g, '').replace(/ /g, '').trim();
- var quotedmsg = Chat.chatlistarray[index].quotedMessage;
- var filepathdata = Chat.chatlistarray[index].filePath;
- if (filepathdata != "null" && quotedmsg == null && filepathdata != undefined) {
- var filetype = Chat.chatlistarray[index].fileName.substring(Chat.chatlistarray[index].fileName.lastIndexOf('.') + 1);
- if (Chat.chatlistarray[index].fileType.includes('audio') || Chat.chatlistarray[index].fileType.includes('video')) {
- filetype = Chat.chatlistarray[index].fileType;
- }
- if (!filetype.match('image.*')) {
- filepathdata = Unibase.Platform.Connect.Components.Chat.Instance().getfileThumbnail(filetype);
- }
- msg = '<img class="thumb_file loadimg d-40" onerror="ReloadImage(event)" src = "' + filepathdata + '" data-dynamic="1">';
- istext = false;
- }
- var mergemsg = "";
- if ($.trim(msg).length > 400) {
- mergemsg = 'text-truncate';
- }
- var quotehtml = `<span class="quotemessage_${Chat.chatGroupId} flex-between-center c-gap-10 biz-highlight-bg-color" id=${chatid}> ${istext ? `<span class="word-break ${mergemsg}">${msg}</span>` : `${msg}`}<i class="icon dripicons-cross text-danger cursor-pointer" id = "closeQuote"></i></span >`;
- $('.div_selected_files').addClass('hidden');
- $('#quoteMsgWrap').html(quotehtml).removeClass('hidden');
- $("#closeQuote").click(function () {
- $('.quotemessage_' + Chat.chatGroupId).remove();
- $('#quoteMsgWrap').addClass('hidden');
- $('#icon_send').addClass('hidden');
- $('#recordaudio').removeClass('hidden');
- });
- }
- draftMessage() {
- var chatId = $('.quotemessage_' + Chat.chatGroupId).attr("id");
- var msg = $('#input_msg_send_chatapp').val();
- var draftmessage = null;
- if (chatId != undefined || msg != '') {
- draftmessage = JSON.stringify({ quote: chatId, message: msg });
- }
- Unibase.Platform.Connect.Managers.ChatManager.Instance().draftMessage(draftmessage, Chat.chatGroupId).then(function (response) {
- if (response.result != null) {
- var index = Chat.recentChats.findIndex(x => x.chatGroupId == Chat.chatGroupId);
- if (index != -1) {
- if (response.result.draftMessage != "null" && response.result.draftMessage != null) {
- Chat.recentChats[index].draftMessage = response.result.draftMessage;
- }
- else {
- Chat.recentChats[index].draftMessage = "";
- }
- $('.user-last-chat_' + response.result.chatGroupId).text(response.result.lastMessage);
- var lastupdatedate = "";
- if (Chat.chatlistarray.length > 0) {
- if (Chat.chatlistarray[Chat.chatlistarray.length - 1].messageType == 0) {
- lastupdatedate = Chat.chatlistarray[Chat.chatlistarray.length - 2].messageSentDate;
- }
- else {
- lastupdatedate = Chat.chatlistarray[Chat.chatlistarray.length - 1].messageSentDate;
- }
- var lastmsgdt = Chat.Instance().timeAnddateFormat(lastupdatedate);
- Chat.recentChats[index].messageLastUpdatedDate = lastupdatedate;
- }
- $('.userChat_' + Chat.chatGroupId).find('.last-chat-time').text(lastmsgdt);
- Chat.recentChats[index].lastMessage = response.result.lastMessage;
- if (response.result.lastMessage != "") {
- Chat.recentChats[index].lastChatId = Chat.chatlistarray[Chat.chatlistarray.length - 1].chatId;
- }
- }
- Chat.chatlistarray = [];
- Chat.chatGroupId = 0;
- }
- });
- }
- editMessage(chatid) {
- var chatInfo = Chat.chatlistarray.find(x => x.chatId == chatid);
- chatInfo.message = chatInfo.message.replace(/ /g, ' ').replace(/<br>/g, '\n').replace(/>/g, '>');
- $('#input_msg_send_chatapp').val(chatInfo.message).trigger('keyup');
- $('#input_msg_send_chatapp').focus();
- $('#icon_send').removeClass('hidden');
- $('#recordaudio').addClass('hidden');
- Chat.chatid = chatid;
- Chat.isEdit = true;
- }
- edit(chatid) {
- $('.div_CLose').addClass('hidden');
- var text = $('#input_msg_send_chatapp').val().toString();
- var chatInfo = Unibase.Platform.Connect.Components.Chat.chatlistarray.find(x => x.chatId == chatid);
- let req = new Unibase.Platform.Connect.Requests.Chat();
- req = chatInfo;
- if (text.trim() == chatInfo.message.trim()) {
- $('#input_msg_send_chatapp').val('');
- return;
- }
- if (text.includes('\n') || text.includes('')) {
- text = text.replace(/ /g, ' ').replace(/\n/g, '<br>');
- }
- req.Message = text;
- this._chatmanager.EditMessage(chatid, text).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- var packet = Chat.Instance().reqToServerMessagePacket(response.result);
- Chat.chatlistarray[Chat.chatlistarray.findIndex(x => x.chatId == chatid)] = response.result;
- Chat.Instance().editHtml(chatid);
- Unibase.Platform.Connect.Components.Chatter.Instance().editMessage(packet, null);
- $('#input_msg_send_chatapp').val('');
- $('#icon_send').addClass('hidden');
- $('#recordaudio').removeClass('hidden');
- Chat.istyping = true;
- Chat.isEdit = false;
- }
- });
- }
- starmessages() {
- var html = '';
- var list = '';
- $('.staredmsgs-list').html('');
- var staremessage = Chat.chatlistarray.filter(x => x.isStared != null && x.isStared.includes(Chat.currentUser.userId));
- $(".profiledetails").addClass('hidden');
- Chat.privatewindow = true;
- for (var i = 0; i < staremessage.length; i++) {
- var q = '';
- var editicon = '';
- var fname = '';
- var msg = staremessage[i].message;
- if (staremessage[i].isEdit) {
- editicon = '<a href="javascript:;" class="btn btn-icon btn-primary btn-icon-circle btn-xs d-20 ml-1 edit-msg-icon"><span class="btn-icon-wrap"><i class="las la-pencil-alt"></i></span></a>';
- }
- if (staremessage[i].quotedMessage != null) {
- q = Unibase.Platform.Connect.Components.Chat.Instance().quotetemplate(staremessage[i]);
- msg = '';
- }
- if (Chat.isPrivate) {
- var showfromuser = "hidden";
- }
- if (staremessage[i].fromUserName != Chat.currentUser.name) {
- fname = '<div><span class="fromUserIdname ' + showfromuser + ' font-10" style="color:#dd6767">' + staremessage[i].fromUserName + '<hr class="ma-0 mb-5"></span></div>';
- }
- var localDate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDate(staremessage[i].messageSentDate);
- var messageDate = moment.utc(staremessage[i].messageSentDate).format('MM-DD-YYYY');
- var msgTime = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateTimeWithT(staremessage[i].messageSentDate);
- msgTime = msgTime.replace(localDate, "");
- var getdatehtml = "";
- if ($('#starmsg_' + messageDate).length == 0) {
- getdatehtml = Chat.Instance().getMessageDate(messageDate);
- }
- if (Chat.currentUser.userId == staremessage[i].fromUserId) {
- html = '<div class="message-wrapper pull-right" style="display:inline-flex;flex-direction:column"><span class="starmsg-span" style = "background-color: #DEF7F9;color: #2C343E;padding: 5px 10px;border-radius: 10px;box-shadow: 0 4px 5px #e5d9d9">' + '' + fname + q + msg + '' + editicon + '<a href="javascript:;" class="btn btn-icon btn-icon-circle btn-primary btn-xs d-20 star-msg-icon"><span class="btn-icon-wrap"><i class="icon dripicons-star"></i></span></a></span><span style="font-size:11px;margin:5px;text-align:right">' + msgTime + '</span></div>';
- }
- else {
- html = '<div class="message-wrapper pull-left" style="display:inline-flex;flex-direction:column"><span class="starmsg-span" style = "background-color: #f6f5f5;padding: 5px 10px;border-radius: 10px;color: #000;box-shadow: 0 4px 5px #e5d9d9">' + '' + fname + q + msg + '' + editicon + '<a href="javascript:;" class="btn btn-icon btn-icon-circle btn-primary btn-xs d-20 star-msg-icon"><span class="btn-icon-wrap"><i class="icon dripicons-star"></i></span></a></span><span style="font-size:11px;margin:5px;text-align:left">' + msgTime + '</span></div>';
- }
- list = '<span style="text-align:center">' + getdatehtml + '</span><li class="staredmsgs_' + staremessage[i].chatId + ' mb-10" id="starmsg_' + messageDate + '">' + html + '</li>';
- $('.staredmsgs-list').append(list);
- }
- $('.starredmsgs-section').removeClass('hidden');
- $('#closestarmsgswindow').click(function () {
- $('.starredmsgs-section').addClass('hidden');
- $('.profiledetails').removeClass('hidden');
- });
- }
- getStarMessagesCount() {
- return Chat.chatlistarray.filter(x => x.isStared != null && x.isStared.includes(Chat.currentUser.userId) && !x.isDelete).length;
- }
- closeStarMessages() {
- $('.chat-message-wrap').removeClass('hidden');
- $('.chatoptions-wrapper').removeClass('hidden');
- $("#starMsgHeader").addClass('hidden');
- $("#chatMsgHeader").removeClass('hidden');
- if (!Chat.isFullScreen) {
- $("#chatConvoBody").addClass('hidden');
- $(".profiledetails").removeClass('hidden');
- }
- $('#chatFooter').removeClass('hidden');
- }
- searchdesign() {
- if (!$('#chatMsgSearchWrap').length) {
- const html = '<div id="chatMsgSearchWrap" class="h-100 position-relative"><div class="search_message d-flex align-items-center justify-content-between h-100 c-gap-10"><div class="msg-search-wrap position-relative h-40p w-100"><input type="text" id="search_chatmsg" placeholder="Search Message...." onkeyup="Unibase.Platform.Connect.Components.Chat.Instance().searchmessages(event);" class="user pl-25 h-100 msg-search-input custom-chat-input"><i class="fa fa-search search-left-icon biz-highlight-bg-color"></i><span class="close_search mr-5"></div><i class="zmdi zmdi-close text-danger font-20" id="back_toheader" ></i></span></div><div class="searchmsgcount flex-between-center hidden"><div><span class="up_count pr-2">0</span>of<span class="total_count px-2">0</span><span>matches</span></div><div><span class="previous_searched"><a class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover h-25p w-25p mr-1 arrow-icon up-arrow" onclick="Unibase.Platform.Connect.Components.Chat.Instance().searchedmessages(false);"><span class="btn-icon-wrap"><i class="fa fa-angle-up font-20 text-dark px-1"></i></span><a class="btn btn-icon btn-flush-biz-theme btn-rounded flush-soft-hover h-25p w-25p ml-1 arrow-icon down-arrow" onclick="Unibase.Platform.Connect.Components.Chat.Instance().searchedmessages(true);"><span class="btn-icon-wrap"><i class="fa fa-angle-down font-20 text-dark"></i></span></a></div></div></div>';
- $('#chatMsgHeader').append(html);
- }
- $('#chatMsgSearchWrap').removeClass('hidden');
- $('.div_chatMediaHeader').addClass('hidden');
- var c = 1;
- for (var i = 0; i < c; i++) {
- if (!$('.more_msg').hasClass('d-none')) {
- $('.morediv').trigger('click');
- c++;
- }
- }
- $('#back_toheader').click(function () {
- $('#search_chatmsg').val('');
- $('.div_chatMediaHeader').removeClass('hidden');
- $('#chatMsgSearchWrap').addClass('hidden');
- $('.searched-msg').removeClass('searched-msg active');
- $('.searchmsgcount .arrow-icon').addClass('disabled');
- $('.searchmsgcount').addClass('hidden');
- });
- }
- searchmessages(keydata) {
- let searchMsgTimer;
- window.clearTimeout(searchMsgTimer);
- searchMsgTimer = setTimeout(() => {
- if (keydata.keyCode == 13) {
- const upCount = +$('.up_count').text();
- const totalCount = +$('.total_count').text();
- if (upCount < totalCount) {
- Chat.Instance().searchedmessages(false);
- }
- return;
- }
- var count = 0;
- Chat.messagesid = [];
- $('.up_count').text(0);
- var list = Chat.chatlistarray.filter(x => x.groupMessageType == 0);
- if (list.length > 0) {
- var word = $('#search_chatmsg').val().toString().toLowerCase().trim();
- if (word == "") {
- $('.total_count').text(0);
- $('.searched-msg').removeClass('searched-msg active');
- $('.searchmsgcount .arrow-icon').addClass('disabled');
- $('.searchmsgcount').addClass('hidden');
- }
- else {
- for (const msg of list) {
- const chatId = msg.chatId;
- var msgText = msg.message.toLowerCase().trim();
- if (msgText.indexOf(word) >= 0) {
- count++;
- var item = {
- index: count, id: msg.chatId
- };
- Chat.messagesid.push(item);
- var exp = new RegExp(word, "g");
- var msgHtml = msgText.replace(exp, `<span id="msgcolor_${chatId}" class="searched-msg" data-chatid="${chatId}">${word}</span>`);
- $(`#message_${chatId}`).html(msgHtml);
- }
- else {
- $(`#msgcolor_${chatId}`).removeClass('searched-msg active');
- }
- $('.total_count').text(count);
- $('.searchmsgcount').removeClass('hidden');
- }
- if (count != 0) {
- $('.up_count').text(1);
- if (count === 1) {
- $('.searchmsgcount .arrow-icon').addClass('disabled');
- }
- else {
- $('.searchmsgcount .up-arrow').removeClass('disabled');
- $('.searchmsgcount .down-arrow').addClass('disabled');
- }
- }
- else {
- $('.searchmsgcount .arrow-icon').addClass('disabled');
- }
- if (keydata.keyCode != 13) {
- const lastSearchedMsgEl = $('.messageslist .searched-msg').last();
- lastSearchedMsgEl.addClass('active');
- lastSearchedMsgEl[0].scrollIntoView({ block: "center" });
- }
- }
- if (count != 0) {
- $('.up_count').text(1);
- }
- }
- }, 1000);
- }
- searchedmessages(downarrow) {
- let upCount = +$('.up_count').text();
- const totalCount = +$('.total_count').text();
- let activeItemIndex = Chat.messagesid.findIndex(x => x.id === $('.searched-msg.active').attr('data-chatid'));
- activeItemIndex = downarrow ? activeItemIndex + 1 : activeItemIndex - 1;
- const countVal = downarrow ? upCount - 1 : upCount + 1;
- $('.messageslist .searched-msg.active').removeClass('active');
- $(`#msgcolor_${Chat.messagesid[activeItemIndex].id}`).addClass('active');
- $(`#msgcolor_${Chat.messagesid[activeItemIndex].id}`)[0].scrollIntoView({ block: "center" });
- $('.up_count').text(countVal);
- upCount = +$('.up_count').text();
- if (upCount === totalCount) {
- $('.searchmsgcount .up-arrow').addClass('disabled');
- $('.searchmsgcount .down-arrow').removeClass('disabled');
- }
- else if (upCount === 1) {
- $('.searchmsgcount .up-arrow').removeClass('disabled');
- $('.searchmsgcount .down-arrow').addClass('disabled');
- }
- else if (upCount < totalCount) {
- $('.searchmsgcount .down-arrow').removeClass('disabled');
- $('.searchmsgcount .up-arrow').removeClass('disabled');
- }
- }
- copyMessage(chatid) {
- var chatInfo = Chat.chatlistarray.find(x => x.chatId == chatid);
- var message = chatInfo.message;
- if (message.startsWith('*') && message.endsWith('*')) {
- message = message.replaceAll('*', '');
- }
- else if (message.startsWith('_') && message.endsWith('_')) {
- message = message.replaceAll('_', '');
- }
- else if (message.startsWith('~') && message.endsWith('~')) {
- message = message.replaceAll('~', '');
- }
- if (message.includes('<br>') || message.includes(' ')) {
- message = message.replaceAll(/<br>/g, '\n');
- message = message.replaceAll(/ /g, '');
- }
- var text = message;
- var textArea = document.createElement("textarea");
- textArea.value = text;
- document.body.appendChild(textArea);
- textArea.select();
- document.execCommand("Copy");
- textArea.remove();
- }
- deleteForEveryone(chatid) {
- const instance = this;
- if (Chat.isBlock) {
- Chat.Instance().BlockAlert();
- return;
- }
- instance.chatPopup({
- message: 'Are you sure you want to delete for everyone?',
- buttons: {
- confirm: {
- label: 'Delete'
- },
- cancel: {
- label: 'Cancel'
- }
- },
- callback: (result) => {
- if (result) {
- var chatInfo = Unibase.Platform.Connect.Components.Chat.chatlistarray.find(x => x.chatId == chatid);
- instance._chatmanager.DeleteForEveryone(chatid, Chat.chatGroupId).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- chatInfo.isDelete = true;
- Chat.chatlistarray[Chat.chatlistarray.findIndex(x => x.chatId == chatid)] = response.result;
- var packet = Chat.Instance().reqToServerMessagePacket(chatInfo);
- Unibase.Platform.Connect.Components.Chatter.Instance().Deleteforeveryone(packet, null);
- Chat.Instance().deleteForEveryoneHtml(chatid);
- }
- });
- }
- }
- });
- }
- deleteMessage(chatid) {
- const instance = this;
- instance.chatPopup({
- message: "Are you sure you want to delete?",
- buttons: {
- confirm: {
- label: 'Delete'
- },
- cancel: {
- label: 'Cancel'
- }
- },
- callback: function (result) {
- if (result) {
- var chatlistarray = Unibase.Platform.Connect.Components.Chat.chatlistarray;
- var index = chatlistarray.findIndex(x => x.chatId == chatid);
- var messageDate = moment(chatlistarray[index].messageSentDate).format('MM-DD-YYYY');
- instance._chatmanager.Delete(chatid, Chat.currentUser.userId).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- Unibase.Platform.Connect.Components.Chat.chatlistarray[index] = response.result;
- var nextmsgtime = $('.chat-messages_' + chatid).next().find('.time').attr("data-msgtime");
- var currentmsgtime = $('.chat-messages_' + chatid).find('.time').attr("data-msgtime");
- var previoustime = $('.chat-messages_' + chatid).prev().find('.time').attr("data-msgtime");
- if (nextmsgtime != currentmsgtime) {
- if (currentmsgtime == previoustime) {
- $('.chat-messages_' + chatid).prev().find('.time').removeClass('hidden');
- }
- }
- $('.chat-messages_' + chatid).remove();
- if ($('.dateli_' + messageDate).length == 0) {
- $('#date_' + messageDate).remove();
- }
- }
- });
- }
- }
- });
- }
- forwardDesign(chatid) {
- const instance = this;
- var html = instance._chatTemplate.getForwardTemplate();
- if (!Chat.isFullScreen) {
- $('#forwardContactsSection').html(html).removeClass('hidden');
- $('#chatConvoBody').addClass('hidden');
- $('.webcam').addClass("hidden");
- }
- else {
- $('#fullScreenModalContent').html(html);
- $('#fullScreenModal').modal();
- }
- $('._btnSendToMany').removeClass('hidden');
- $('#forwardSendBtn').attr('data-chatid', chatid);
- $('#forwardSendBtn').click(function () {
- instance.sendToMany($(this).attr('data-chatid'));
- });
- this.forwardContacts();
- }
- sendToMany(chatid) {
- if (chatid == "Multi-Forward") {
- Unibase.Platform.Connect.Components.Chat.Instance().multipleforward();
- }
- else {
- Unibase.Platform.Connect.Components.Chat.Instance().forwardMessage(chatid);
- }
- }
- multipleforward() {
- var recipients = [];
- $('input[name="forwardcontact"]').each(function () {
- if ($(this).is(':checked')) {
- var chatGroupid = Number($(this).attr('data-chatgroupid'));
- var contactid = Number($(this).attr('data-contactid'));
- var chatobj = {
- contactId: contactid, chatGroupId: chatGroupid
- };
- recipients.push(chatobj);
- }
- });
- var obj = { Recipients: recipients, Messages: Chat.MultiSelect };
- Unibase.Platform.Connect.Managers.ChatManager.Instance().forwardmultiple(obj).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- for (var i = 0; i < response.result.length; i++) {
- var contactinfo = Chat.Instance().getContactInfo(response.result[i].contactId, response.result[i].chatGroupId);
- var packet = Chat.Instance().reqToClientMessagePacket(response.result[i]);
- packet.isPrivate = contactinfo.isPrivate;
- packet.toUserPhotoUrl = contactinfo.photoUrl;
- packet.fromUserName = contactinfo.contactName;
- packet.fromUserId = contactinfo.contactId;
- packet.message = response.result[i].lastMessage;
- packet.messageSentDate = new Date();
- packet.groupMessageType = 0;
- Chat.Instance().newChat(packet, true);
- }
- Chat.MultiSelect = [];
- MessageHelper.Instance().showSuccess("Successfully forwarded", '');
- }
- else {
- alert("failed to forward");
- }
- $('.forward-contacts-section').addClass('hidden');
- $('.chat-convo-body').removeClass('hidden');
- });
- }
- closeForwardContacts() {
- Chat.groupcontacts = [];
- if (!Chat.isFullScreen) {
- $('#chatConvoBody').removeClass('hidden').siblings().addClass('hidden');
- }
- else {
- $('#fullScreenModal').modal('hide');
- }
- }
- starMessageTemplate(chatId) {
- var index = Chat.chatlistarray.findIndex(x => x.chatId == chatId);
- let editedmsg = Chat.chatlistarray[index];
- let currentUser = Chat.currentUser.userId.toString();
- var msg = editedmsg.message;
- if (editedmsg.isStared == null) {
- Unibase.Platform.Connect.Components.Chat.chatlistarray[index].isStared = "";
- }
- var RemoveStarmessage = '<li class="unstar"><a class="dropdown-item" id="unstar" href="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().StarMessage(\'' + editedmsg.chatId + '\')";>Unstar message</a></li>';
- var Starmessage = '<li class="star"><a class="dropdown-item" id="star" href="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().StarMessage(\'' + editedmsg.chatId + '\')";>Star message</a></li>';
- var result = editedmsg.isStared.includes(currentUser);
- if (result) {
- var dropdownElement = $("#drpdwn_" + editedmsg.chatId);
- dropdownElement.find(".star").remove();
- msg = `<a href="javascript:;" class="btn btn-icon btn-icon-circle btn-primary btn-xs d-20 star-msg-icon"><span class="btn-icon-wrap"><i class="icon dripicons-star"></i></span></a>`;
- $(RemoveStarmessage).appendTo("#drpdwn_" + editedmsg.chatId);
- $('#message_' + editedmsg.chatId).prepend(msg);
- $('#message_' + editedmsg.chatId).closest('.message-body').addClass('star-msg-body');
- }
- else {
- var dropdownElement = $("#drpdwn_" + editedmsg.chatId);
- dropdownElement.find(".unstar").remove();
- $('#message_' + editedmsg.chatId).find('.star-msg-icon').remove();
- $('#message_' + editedmsg.chatId).closest('.message-body').removeClass('star-msg-body');
- msg = msg;
- $(Starmessage).appendTo("#drpdwn_" + editedmsg.chatId);
- }
- }
- StarMessage(chatid) {
- let currentUser = Chat.currentUser.userId;
- this._chatmanager.StarMessage(chatid, currentUser).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- Chat.chatlistarray[Chat.chatlistarray.findIndex(x => x.chatId == chatid)] = response.result;
- Chat.Instance().starMessageTemplate(chatid);
- }
- });
- }
- UpdateDeliveryStatus(packet) {
- if (Chat.chatGroupId == packet.chatGroupId) {
- let index = Unibase.Platform.Connect.Components.Chat.chatlistarray.findIndex(x => x.chatId == packet.chatId);
- if (index != -1) {
- Unibase.Platform.Connect.Components.Chat.chatlistarray[index] = packet;
- }
- else {
- Unibase.Platform.Connect.Components.Chat.chatlistarray.push(packet);
- }
- Chat.Instance().updateMessageStatus(packet.chatId);
- }
- }
- UpdateReadStatus(packet) {
- if (Chat.chatGroupId == packet.chatGroupId) {
- let index = Unibase.Platform.Connect.Components.Chat.chatlistarray.findIndex(x => x.chatId == packet.chatId);
- if (index != -1) {
- Unibase.Platform.Connect.Components.Chat.chatlistarray[index] = packet;
- }
- else {
- Unibase.Platform.Connect.Components.Chat.chatlistarray.push(packet);
- }
- Chat.Instance().updateMessageStatus(packet.chatId);
- }
- }
- editedMsg(packet) {
- if (Chat.chatGroupId == packet.chatGroupId) {
- let index = Unibase.Platform.Connect.Components.Chat.chatlistarray.findIndex(x => x.chatId == packet.chatId);
- Unibase.Platform.Connect.Components.Chat.chatlistarray[index] = packet;
- Chat.Instance().editHtml(packet.chatId);
- }
- else {
- var chatindex = Chat.recentChats.findIndex(x => x.chatGroupId == packet.chatGroupId);
- if (chatindex != -1) {
- if (Chat.recentChats[chatindex].lastChatId == packet.chatId) {
- Chat.recentChats[chatindex].lastMessage = packet.message;
- $('.user-last-chat_' + packet.chatGroupId).text(packet.message);
- }
- }
- }
- }
- deleteall(packet) {
- if (Chat.chatGroupId == packet.chatGroupId) {
- let index = Unibase.Platform.Connect.Components.Chat.chatlistarray.findIndex(x => x.chatId == packet.chatId);
- Unibase.Platform.Connect.Components.Chat.chatlistarray[index] = packet;
- Chat.Instance().deleteForEveryoneHtml(packet.chatId);
- }
- else {
- var chatindex = Chat.recentChats.findIndex(x => x.chatGroupId == packet.chatGroupId);
- if (chatindex != -1) {
- if (Chat.recentChats[chatindex].lastChatId == packet.chatId) {
- Chat.recentChats[chatindex].lastMessage = "This message was deleted";
- $('.user-last-chat_' + packet.chatGroupId).text("This message was deleted");
- }
- }
- }
- Chat.mediadoclinks = Chat.chatlistarray.filter(x => x.messageType != 1 && 2).filter(x => x.isDelete == false).filter(x => x.groupMessageType == 0);
- }
- deleteForEveryoneHtml(chatid) {
- var chatinfo = Chat.chatlistarray.find(x => x.chatId == chatid);
- var message = (Chat.currentUser.userId == chatinfo.fromUserId) ? "You deleted this message" : "This message was deleted";
- var html = '<span class="delete-msg"><i>' + message + '</i><span class="btn btn-icon btn-icon-circle btn-icon-style-2 btn-soft-danger d-20 ml-1 cursor-pointer del-icon" onclick="Unibase.Platform.Connect.Components.Chat.Instance().deleteMessage(\'' + chatid + '\')"><span class="btn-icon-wrap"><i class="las la-trash-alt font-14"></i></span></span></span>';
- $('.chat-messages_' + chatinfo.chatId).find('.message-span').html(html);
- $('.chat-messages_' + chatinfo.chatId).find('.message-download').remove();
- $('.chat-messages_' + chatinfo.chatId).find('.msg_status').remove();
- var optionhtml = '<li class="delete"><a class="dropdown-item" href="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().deleteMessage(\'' + chatid + '\')"><span>Delete</span></a></li>';
- $('.chat-messages_' + chatinfo.chatId).find('.chatoptions-wrapper').find('.dropdown-menu').html(optionhtml);
- }
- editHtml(chatId) {
- var html = '';
- var chatinfo = Chat.chatlistarray.find(x => x.chatId == chatId);
- var msg = chatinfo.message;
- if (chatinfo.quotedMessage != null) {
- html += Unibase.Platform.Connect.Components.Chat.Instance().quotetemplate(chatinfo);
- msg = '';
- }
- html += '<span>' + msg + '</span><a href="javascript:;" class="btn btn-icon btn-primary btn-icon-circle btn-xs d-20 ml-1 edit-msg-icon"><span class="btn-icon-wrap"><i class="las la-pencil-alt"></i></span></a>';
- if (chatinfo.isStared != null) {
- html = html + ' <a href="javascript:;" class="btn btn-icon btn-icon-circle btn-primary btn-xs d-20 star-msg-icon"><span class="btn-icon-wrap"><i class="icon dripicons-star"></i></span></a>';
- }
- $('.chat-messages_' + chatinfo.chatId).find('.message-span').html(html);
- }
- showtyping(contactname, contactid, chatgroupId, isprivate) {
- $('.user-last-chat_' + chatgroupId).addClass('hidden');
- $('.typing_active_' + chatgroupId).removeClass('hidden');
- var typingtext = "typing";
- var contactstext = contactname;
- if (!isprivate) {
- var typingcontacts = contactname;
- if ($('.typing_active_' + chatgroupId).attr('data-typingcontacts') != '') {
- typingcontacts += $('.typing_active_' + chatgroupId).text().replace("typing", "&");
- contactstext = $('.typing_active_' + chatgroupId).attr('data-typingcontacts') + "|" + contactname;
- }
- typingtext = typingcontacts + " typing";
- }
- $('.typing_active_' + chatgroupId).attr('data-typingcontacts', contactstext).text(typingtext);
- $('.user-last-chat_' + chatgroupId).addClass('hidden');
- $('.typing').removeClass('hidden');
- if (Chat.chatGroupId == chatgroupId) {
- Chat.Instance().loadTyping(chatgroupId);
- }
- }
- loadTyping(chatgroupid) {
- $('.typing').html('');
- var element = $('.typing_active_' + chatgroupid).attr('data-typingcontacts');
- if (element != undefined) {
- var typingcontacts = $('.typing_active_' + chatgroupid).attr('data-typingcontacts').split("|").filter(x => x != "");
- for (let i = 0; i < typingcontacts.length; i++) {
- var html = Chat.Instance()._chatTemplate.getTypingTemplate(typingcontacts[i]);
- $('.typing').append(html);
- }
- (typingcontacts.length == 0) ? $('.typing').html('').addClass('hidden') : $('.typing').removeClass('hidden');
- }
- }
- LoadAttachments(event) {
- var a = '';
- if (event.files != undefined) {
- var files = event.files;
- var imgShow = "";
- for (let i = 0; i < files.length; i++) {
- let f = files[i];
- a = f.name.substring(f.name.lastIndexOf('.') + 1);
- if (f.type.includes('audio') || f.type.includes('video')) {
- a = f.type;
- }
- var reader = new FileReader();
- if (!f.type.match('image.*')) {
- imgShow = Unibase.Platform.Connect.Components.Chat.Instance().getfileThumbnail(a);
- reader.onload = (function (theFile) {
- return function (e) {
- Unibase.Platform.Connect.Components.Chat.Instance().renderthumbnail(imgShow);
- };
- })(f);
- reader.readAsDataURL(f);
- }
- else {
- reader.onload = (function (theFile) {
- return function (e) {
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.Image;
- Unibase.Platform.Connect.Components.Chat.Instance().renderthumbnail(e.target.result);
- };
- })(f);
- reader.readAsDataURL(f);
- }
- }
- Unibase.Platform.Connect.Components.Chat.Instance().uploadFile();
- }
- document.getElementById('chat_attachments').addEventListener('change', this.LoadAttachments, false);
- }
- uploadFile() {
- let fileUpload = $(".fileUpload").get(0);
- var files = fileUpload.files;
- if (files.length > 0) {
- for (var i = 0; i < files.length; i++) {
- Chat.itemid++;
- let file = files[i];
- var item = { Files: file, Index: Chat.itemid };
- Chat.attachments.push(item);
- $("#input_msg_send_chatapp").focus();
- if (Chat.attachments.length > 0) {
- $('#icon_send').removeClass('hidden');
- $('#recordaudio').addClass('hidden');
- }
- }
- }
- }
- renderthumbnail(imgshow) {
- Chat.fileitems++;
- var span = '<div class="imagethumbnail_' + Chat.fileitems + '"><span class="thumb-span attached_files_"' + Chat.fileitems + '"" > ' +
- '<img class="thumb loadimg d-40 img-fluid" id="loadedFiles_' + Chat.fileitems + '" src="' + imgshow + '" onerror="ReloadImage(event)" data-dynamic="1"/>' +
- '<a href="javascript:;" class="btn btn-icon btn-icon-circle btn-primary remove-btn"><span class="btn-icon-wrap"><i class="las la-times font-12" href="javascript:;" onclick ="Unibase.Platform.Connect.Components.Chat.Instance().removeFile(\'' + Chat.fileitems + '\'); " id="remove_file__' + Chat.fileitems + '"></i></span></a></span></div>';
- $('#quoteMsgWrap').addClass('hidden');
- $('.div_selected_files').append(span).removeClass('hidden');
- $("#input_msg_send_chatapp").focus();
- $('#icon_send').removeClass('hidden');
- $('#recordaudio').addClass('hidden');
- }
- removeFile(index) {
- $('.imagethumbnail_' + index).remove();
- Chat.attachments = Chat.attachments.filter(x => x.Index != index);
- if (Chat.attachments.length == 0) {
- $('#icon_send').addClass('hidden');
- $('#recordaudio').removeClass('hidden');
- $('.fileUpload').val('');
- }
- }
- GetFilePath(filepath) {
- filepath.split("\\").join("//");
- filepath = filepath.replace('wwwroot', '');
- if (filepath.startsWith("/")) {
- var path = filepath.split("/");
- filepath = filepath.replace("/" + path[1], path[1]);
- }
- return filepath;
- }
- downloadfile(filepath, chatid) {
- if (!isMobileApp()) {
- filepath = Chat.Instance().getFilePath(filepath);
- $(".downloadfiles_" + chatid).attr("href", filepath).click();
- }
- else {
- Unibase.Platform.Helpers.MobileHelper.Instance().downloadFile(filepath);
- }
- }
- filePreview(path) {
- path = _appsettings.server_url() + "/" + path;
- window.open(path, '');
- }
- changeProfileImage(event) {
- let oldPhotoUrl = Chat.Instance().getContactInfo(0, Chat.chatGroupId).photoUrl;
- let user = Chat.currentUser;
- if (event.files != null) {
- var files = event.files[0];
- var name = event.files[0].name;
- var filedata = new FormData();
- filedata.append(name, files);
- const url = _appsettings.server_url() + '/apis/uniconnect/chats/ProfileChange/chatgroupid/' + Chat.chatGroupId;
- $.ajax({
- url: url,
- type: "POST",
- data: filedata,
- contentType: false,
- processData: false,
- beforeSend: function (xhr) {
- if (user !== undefined && user !== null) {
- xhr.setRequestHeader('Authorization', 'Basic ' + user.sessionId);
- xhr.setRequestHeader('geoposition', user.latd + ':' + user.lgId);
- }
- },
- success: function (response) {
- console.log(response.message);
- Chat.attachments = [];
- var newPhotoUrl = response.result;
- Unibase.Platform.Connect.Components.Chat.Instance().groupDetails(Unibase.Platform.Connect.Enums.GroupMessageType.ChangeProfilePic, oldPhotoUrl, newPhotoUrl, 0);
- Chat.Instance().updateProfile(response.result, Chat.chatGroupId);
- },
- error: function (error) {
- console.log(error);
- alert("failed to Update profile");
- }
- });
- }
- }
- sendmessage(msg) {
- var message = $('#input_msg_send_chatapp').val().toString();
- if (msg != undefined) {
- if (msg.indexOf('blob') != -1) {
- message = msg;
- }
- ;
- }
- var val = message.trim();
- if (val != '') {
- message = message.replace(/</g, '<').replace(/>/g, '>');
- var messageType;
- var Touserid = Number($('#private_id').val());
- let req = new Unibase.Platform.Connect.Requests.Chat();
- req.ChatGroupId = Unibase.Platform.Connect.Components.Chat.chatGroupId;
- req.ToUserId = Touserid;
- req.FromUserId = Chat.currentUser.userId;
- req.Message = message;
- messageType = Unibase.Platform.Connect.Enums.MessageType.Text;
- if (message.includes('https/') || message.includes('www.'))
- messageType = Unibase.Platform.Connect.Enums.MessageType.Url;
- req.MessageType = messageType;
- if ($('.quotemessage_' + Chat.chatGroupId).text() != "") {
- let index = Unibase.Platform.Connect.Components.Chat.chatlistarray.findIndex(x => x.chatId == Chat.chatid);
- var quotedfiles = Chat.chatlistarray[index].filePath;
- if (quotedfiles != null) {
- req.QuotedMessage = Chat.chatlistarray[index].filePath;
- req.FileType = Chat.chatlistarray[index].fileType;
- Chat.chatid = 0;
- }
- else {
- var html = Chat.chatlistarray[index].message + '<div style="font-size:10px">' + Chat.chatlistarray[index].fromUserName + '</div>';
- req.QuotedMessage = html;
- }
- }
- this._chatmanager.saveChat(req).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- Unibase.Platform.Connect.Components.Chat.chatlistarray.push(response.result);
- Chat.Instance().newMessage(response.result);
- var contactinfo = Chat.Instance().getContactInfo(Chat.contactId, Chat.chatGroupId);
- if (contactinfo != undefined) {
- Chat.chatGroupId = response.result.chatGroupId;
- var packet = Chat.Instance().reqToClientMessagePacket(response.result);
- packet.isPrivate = contactinfo.isPrivate;
- packet.toUserPhotoUrl = contactinfo.photoUrl;
- packet.fromUserName = contactinfo.contactName;
- packet.fromUserId = contactinfo.contactId;
- packet.messageSentDate = response.result.messageSentDate;
- Chat.Instance().newChat(packet);
- }
- $(`.user-last-chat_${Chat.chatGroupId}`).text(response.result.message);
- }
- });
- }
- }
- newMessage(packet) {
- var messagedate = moment.utc(packet.messageSentDate).format("MM-DD-YYYY");
- var html = '';
- if ($('#date_' + messagedate).length == 0) {
- html += Chat.Instance().getMessageDate(messagedate);
- }
- html += Chat.Instance().loadconversation(packet, true);
- $('.messageslist').append(html);
- let lastelement = $('.chat-message-wrap').last();
- if (lastelement[0] != undefined)
- lastelement[0].scrollIntoView();
- }
- sendfiles() {
- var message = $('#input_msg_send_chatapp').val();
- Chat.fileitems = 0;
- Chat.itemid = 0;
- var count = 0;
- var messageType = Chat.messagetype;
- $('#chat_attachments').prop("value", null);
- var Touserid = Number($('#private_id').val());
- var fileData = new FormData();
- fileData.append(message.toString(), 'msg');
- for (var i = 0; i < Chat.attachments.length; i++) {
- var files = Chat.attachments[i].Files;
- if (files.size <= 300000000) {
- fileData.append(files.name, files);
- count++;
- }
- else {
- alert("Cannot Upload File More Than 300MB");
- return;
- }
- }
- if (message == "") {
- message = null;
- }
- for (var i = 0; i < Chat.attachments.length; i++) {
- Unibase.Platform.Connect.Components.Chat.Instance().filetemplate(Chat.attachments[i].Files);
- }
- if (count == 0 && Chat.attachments.length != 0) {
- $('.div_selected_files').html('');
- return;
- }
- const url = _appsettings.server_url() + '/apis/uniconnect/Chats/savechatattachments/touserid/' + Touserid + '/chatgroupid/' + Chat.chatGroupId + '/messagetype/' + messageType + '/fromusername/' + Chat.currentUser.name;
- $.ajax({
- url: url,
- type: "POST",
- data: fileData,
- contentType: false,
- processData: false,
- beforeSend: function (xhr) {
- if (Chat.currentUser.userId !== undefined && Chat.currentUser.userId !== null) {
- xhr.setRequestHeader('Authorization', 'Basic ' + Chat.currentUser.sessionId);
- xhr.setRequestHeader('geoposition', Chat.currentUser.latd + ':' + Chat.currentUser.lgId);
- }
- },
- success: function (response) {
- console.log(response.Message);
- Chat.attachments = [];
- Chat.messagetype = 1;
- $('.div_selected_files').html('');
- if (response.result != null) {
- $('.chat-messages_temp').remove();
- for (let i = 0; i < response.result.length; i++) {
- Chat.Instance().newMessage(response.result[i]);
- }
- if (Chat.chatGroupId == 0) {
- var contactinfoindex = Chat.contacts.findIndex(x => x.contactId == Chat.contactId);
- if (contactinfoindex != -1) {
- Chat.chatGroupId = response.result.chatGroupId;
- Chat.contacts[contactinfoindex].chatGroupId = response.result[0].chatGroupId;
- var clientresponse = response.result[response.result.length - 1];
- var packet = Chat.Instance().reqToClientMessagePacket(clientresponse);
- packet.isPrivate = true;
- packet.toUserPhotoUrl = Chat.contacts[contactinfoindex].photoUrl;
- packet.fromUserName = Chat.contacts[contactinfoindex].contactName;
- packet.fromUserId = Chat.contacts[contactinfoindex].contactId;
- Chat.Instance().newChat(packet);
- }
- }
- else {
- $('#input_msg_send_chatapp').focus();
- }
- for (let i = 0; i < response.result.length; i++) {
- Chat.Instance().updateMessageStatus(response.result[i].chatId);
- }
- }
- },
- error: function (error) {
- console.log(error);
- $('.uploading-icon').addClass('hidden');
- $('.error-icon').removeClass('hidden');
- $('.div_selected_files').html('');
- }
- });
- }
- reqToServerMessagePacket(response) {
- let _packet = new Unibase.Platform.Connect.Server.Packets.MessageDetails();
- _packet.ChatGroupId = response.chatGroupId;
- _packet.FromUserId = response.fromUserId;
- _packet.ToUserId = response.toUserId;
- _packet.CreatedDate = response.createdDate;
- _packet.Message = response.message;
- _packet.LastSeen = response.lastSeen;
- _packet.FromUserName = response.fromUserName;
- _packet.ChatId = response.chatId;
- _packet.MessageStatusId = response.messageStatusId;
- _packet.MessageDeliveredDate = response.messageDeliveredDate;
- _packet.MessageReadDate = response.messageReadDate;
- _packet.StatusId = response.statusId;
- _packet.CreatedBy = response.createdBy;
- _packet.FilePath = response.filePath;
- _packet.FileName = response.fileName;
- _packet.FileType = response.fileType;
- _packet.CommentChatId = response.commentChatId;
- _packet.QuotedMessage = response.quotedMessage;
- _packet.TempId = response.tempId;
- _packet.MessageType = response.messageType;
- _packet.SessionId = Chat.currentUser.sessionId;
- _packet.MessageSentDate = response.messageSentDate;
- _packet.Users = response.users;
- _packet.RecievedUsers = response.recievedUsers;
- _packet.ReadUsers = response.readUsers;
- _packet.ClearChatFor = response.clearChatFor;
- _packet.IsDelete = response.isDelete;
- _packet.IsEdit = response.isEdit;
- _packet.DeliveredBy = response.deliveredBy;
- _packet.ReadBy = response.readBy;
- _packet.GroupMessageType = response.groupMessageType;
- _packet.IsPrivate = response.isPrivate;
- return _packet;
- }
- reqToClientMessagePacket(response) {
- let _packet = new Unibase.Platform.Connect.Client.Packets.MessageDetails();
- _packet.chatGroupId = response.chatGroupId;
- _packet.fromUserId = response.fromUserId;
- _packet.toUserId = response.toUserId;
- _packet.createdDate = response.createdDate;
- _packet.message = response.message;
- _packet.lastSeen = response.lastSeen;
- _packet.fromUserName = response.fromUserName;
- _packet.chatId = response.chatId;
- _packet.messageStatusId = response.messageStatusId;
- _packet.messageDeliveredDate = response.messageDeliveredDate;
- _packet.messageReadDate = response.messageReadDate;
- _packet.statusId = response.statusId;
- _packet.createdBy = response.createdBy;
- _packet.filePath = response.filePath;
- _packet.fileName = response.fileName;
- _packet.fileType = response.fileType;
- _packet.commentChatId = response.commentChatId;
- _packet.quotedMessage = response.quotedMessage;
- _packet.tempId = response.tempId;
- _packet.messageType = response.messageType;
- _packet.messageSentDate = response.messageSentDate;
- _packet.users = response.users;
- _packet.recievedUsers = response.recievedUsers;
- _packet.readUsers = response.readUsers;
- _packet.clearChatFor = response.clearChatFor;
- _packet.isDelete = response.isDelete;
- _packet.isEdit = response.isEdit;
- _packet.deliveredBy = response.deliveredBy;
- _packet.readBy = response.readBy;
- _packet.groupMessageType = response.groupMessageType;
- _packet.isPrivate = response.isPrivate;
- return _packet;
- }
- updateAdminStatus(recipientId, isAdmin) {
- var contactname = Chat.contacts.find(x => x.contactId == recipientId).contactName;
- var text = isAdmin ? "make " : "remove ";
- var method = isAdmin ? 'Unibase.Platform.Connect.Components.Chat.Instance().makeAdmin(' + recipientId + ',' + Chat.chatGroupId + ')' : 'Unibase.Platform.Connect.Components.Chat.Instance().removeAdmin(' + recipientId + ',' + Chat.chatGroupId + ')';
- Chat.Instance().chatPopup({
- message: 'Do you want to ' + text + contactname + ' as admin ?',
- buttons: {
- confirm: {
- label: text + " admin",
- },
- cancel: {
- label: 'Cancel'
- }
- },
- callback: (result) => {
- if (result) {
- Unibase.Platform.Connect.Managers.ChatManager.Instance().updateAdminStatus(Chat.chatGroupId, recipientId, isAdmin).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- if (isAdmin) {
- Unibase.Platform.Connect.Components.Chat.Instance().groupDetails(Unibase.Platform.Connect.Enums.GroupMessageType.MakeAdmin, null, null, recipientId);
- }
- else {
- Unibase.Platform.Connect.Components.Chat.Instance().groupDetails(Unibase.Platform.Connect.Enums.GroupMessageType.RemoveAdmin, null, null, recipientId);
- }
- eval(method);
- }
- });
- }
- }
- });
- }
- createnewgroup() {
- const instance = this;
- const newgrphtml = instance._chatTemplate.getNewGroupTemplate();
- $('.CreateNewChatGroup').html(newgrphtml);
- $('#newGroupSection').removeClass('hidden');
- $('#chatsContactsSection').addClass('hidden');
- Chat.routes.push('create-group');
- instance.loadgroupcontacts();
- }
- addNewParticipants() {
- const instance = this;
- var RecipientId;
- let contacts = Chat.Instance().getContacts();
- var html = "";
- var photourl;
- Chat.groupcontacts = [];
- if (contacts.length) {
- $('.Notify-Chat-AddParticipants').html('<li class="list-group-item text-center text-dark">Loading...</li>').removeClass('hidden');
- for (let i = 0; i < contacts.length; i++) {
- var match = false;
- for (let j = 0; j < Chat.grpdetails.length; j++) {
- if (contacts[i].photoUrl == "" || contacts[i].photoUrl == null) {
- photourl = "";
- }
- if (contacts[i].contactId == Chat.grpdetails[j].recipientId && !Chat.grpdetails[j].isBlock) {
- match = true;
- }
- }
- if (match == false) {
- const addhtml = instance._chatTemplate.getAddParticipants(contacts[i].contactId, contacts[i].contactName);
- html += addhtml;
- }
- }
- $('.Notify-Chat-AddParticipants').html(html);
- }
- const contactsLength = Chat.groupcontacts.length;
- if (contactsLength != 0) {
- Chat.groupcontacts.forEach(contact => {
- $(".checkuser_" + contact.RecipientId).prop('checked', true);
- });
- instance.appendSelectedGroupParticipants();
- }
- $("input[name='selected_participants']").click(function (e) {
- e.stopPropagation();
- $('.btn_saveGroup').removeClass('hidden');
- if (!$(this).is(":checked")) {
- RecipientId = +$(this).val();
- Chat.groupcontacts = Chat.groupcontacts.filter(x => x.RecipientId != RecipientId);
- if (Chat.groupcontacts.length == 0) {
- $('.participant_avatar').html('').addClass('hidden');
- }
- }
- else {
- RecipientId = +$(this).val();
- var req = new Unibase.Platform.Connect.Requests.ChatRecipient();
- req.RecipientId = RecipientId;
- Chat.groupcontacts.push(req);
- }
- instance.appendSelectedGroupParticipants();
- });
- $('.Notify-Chat-AddParticipants .groupuser').click(function () {
- $(this).find("input[name='selected_participants']").trigger('click');
- });
- }
- groupname() {
- if ($(".btn_saveGroup").hasClass("hidden")) {
- $(".btn_saveGroup").removeClass("hidden");
- }
- }
- appendSelectedGroupParticipants() {
- const instance = this;
- const contactLength = Chat.groupcontacts.length;
- if (contactLength <= 2) {
- const avatarHtml = Chat.groupcontacts.map(contact => {
- var contactinfo = Chat.contacts.find(x => x.contactId == contact.RecipientId);
- return instance._chatTemplate.getUserAvatarHtml(contactinfo);
- }).join('');
- $('.participant_avatar').html(avatarHtml).removeClass('hidden');
- }
- else {
- if (!$('.slectedparticipants-count').length) {
- $('.participant_avatar').append(`<div class="media-img-wrap avatar avatar-sm slectedparticipants-count"><span class="avatar-text avatar-text-primary rounded-circle"><span class="initial-wrap"><span class="selectedParticipants"></span></span></span></div>`);
- }
- $(".selectedParticipants").text(`+${contactLength - 2}`);
- }
- $(".countChatAddParticipants").text(contactLength);
- }
- changeGroupName() {
- const groupname = $('.edit_groupdetailsInput').val().toString();
- const prevGroupName = $('.edit_groupdetailsInput').attr('data-prevvalue');
- if (groupname !== prevGroupName) {
- Unibase.Platform.Connect.Managers.ChatManager.Instance().changeGroupName(Chat.chatGroupId, groupname).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- Unibase.Platform.Connect.Components.Chat.Instance().groupDetails(Unibase.Platform.Connect.Enums.GroupMessageType.ChangeGroupName, null, null, 0);
- Chat.recentChats.find(x => x.chatGroupId == Chat.chatGroupId).contactName = groupname;
- $(".grpname_" + Chat.chatGroupId).text(groupname);
- $('.edit_groupdetailsInput').val(groupname);
- }
- });
- }
- $('.edit_grpdetails').removeClass('hidden');
- $('#userProfileInfo').find('.Profile_name').text(groupname).removeClass('hidden');
- $('#editGroupInputWrap').addClass('hidden');
- $('.close_details').addClass('hidden');
- $('.group_name').addClass('hidden');
- $('.grpname_' + Chat.chatGroupId).text(groupname);
- }
- Savegroup() {
- if (Chat.groupcontacts.length == 0) {
- $(".btn_saveGroup").addClass("hidden");
- alert("Please Select contacts");
- return false;
- }
- let reqgrp = new Unibase.Platform.Connect.Requests.ChatGroup();
- var newgroup = false;
- $(".btn_saveGroup").removeClass("hidden");
- let user = Chat.currentUser;
- let groupuser = new Unibase.Platform.Connect.Requests.ChatRecipient();
- if (Chat.chatGroupId != 0) {
- reqgrp.GroupName = Chat.grpdetails[0].groupName;
- $('.prevcontactname').val(reqgrp.GroupName);
- }
- if (Chat.chatGroupId == 0) {
- reqgrp.GroupName = $("#txt_GroupName").val().toString();
- if (reqgrp.GroupName == "" || reqgrp.GroupName == null) {
- $(".btn_saveGroup").addClass("hidden");
- alert("Please Enter GroupName");
- return false;
- }
- groupuser.RecipientId = user.userId;
- groupuser.IsAdmin = true;
- groupuser.StatusId = 1;
- Chat.groupcontacts.push(groupuser);
- reqgrp.IsPrivate = false;
- newgroup = true;
- $('.prevcontactname').val(reqgrp.GroupName);
- }
- reqgrp.ChatGroupId = Chat.chatGroupId;
- reqgrp.Users = Chat.groupcontacts;
- Unibase.Platform.Connect.Managers.ChatManager.Instance().saveChatGroup(reqgrp).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- Chat.chatGroupId = response.result.chatGroupId;
- Unibase.Platform.Connect.Managers.ChatManager.Instance().getChatRecipientsByGroupId(Chat.chatGroupId).then(function (response) {
- Chat.grpdetails = response.result;
- if (newgroup) {
- Unibase.Platform.Connect.Components.Chat.Instance().groupDetails(Unibase.Platform.Connect.Enums.GroupMessageType.CreateGroup, null, null, 0);
- Unibase.Platform.Connect.Components.Chat.Instance().groupDetails(Unibase.Platform.Connect.Enums.GroupMessageType.AddParticipants, null, null, 0);
- $('#chatsContactsSection').removeClass('hidden');
- $('#newGroupSection').addClass('hidden');
- $(".chatapp-users-list").removeClass("hidden");
- $(".div_ContactsList").addClass("hidden");
- $('._btncomment').addClass('active');
- $('._btnDisplayUser').removeClass('active');
- }
- else {
- Unibase.Platform.Connect.Components.Chat.Instance().groupDetails(Unibase.Platform.Connect.Enums.GroupMessageType.AddParticipants, null, null, 0);
- $('.user-profile-info').removeClass('hidden');
- $('.div-Chat-AddParticipants').addClass('hidden');
- $('.div-Chat-Participants').removeClass('hidden');
- $('.star-messages-links').removeClass('hidden');
- $('.profile-media-link').removeClass('hidden');
- $('.profile-action-div').removeClass('hidden');
- $('.btn_AddChatParticipants').removeClass('hidden');
- $('#btn_addtoGrpName').addClass('hidden');
- $('.user-profile-info,.group-info-header').removeClass('hidden');
- $('.div-Chat-AddParticipants,.add-participants-header').addClass('hidden');
- Unibase.Platform.Connect.Components.Chat.Instance().participantsList(Chat.grpdetails);
- Unibase.Platform.Connect.Components.Chatter.Instance().addParticipants(Chat.grpdetails);
- $(Chat.visibleProfileEl).removeClass('hidden');
- }
- });
- }
- });
- $('.participant_avatar').html('').addClass('hidden');
- $('.Search_participants').addClass('hidden');
- $('.div-Chat-AddParticipants').addClass('hidden');
- }
- groupDetails(groupMessageType, oldPhotoUrl, newPhotoUrl, toUserId) {
- let user = Chat.currentUser;
- var contactinfo = Chat.contacts.find(x => x.contactId == toUserId);
- var message;
- if (groupMessageType == Unibase.Platform.Connect.Enums.GroupMessageType.CreateGroup) {
- message = user.name + " " + "created group" + " " + Chat.grpdetails[0].groupName;
- Unibase.Platform.Connect.Components.Chat.Instance().sendGroupDetails(0, groupMessageType, message);
- }
- else if (groupMessageType == Unibase.Platform.Connect.Enums.GroupMessageType.AddParticipants) {
- Chat.groupcontacts = Chat.groupcontacts.filter(x => x.RecipientId != Chat.currentUser.userId);
- for (let i = 0; i < Chat.groupcontacts.length; i++) {
- var contactinfo = Chat.contacts.find(x => x.contactId == Chat.groupcontacts[i].RecipientId);
- if (contactinfo != undefined) {
- message = user.name + " " + "added" + " " + contactinfo.contactName;
- Unibase.Platform.Connect.Components.Chat.Instance().sendGroupDetails(Chat.grpdetails[i].recipientId, groupMessageType, message);
- }
- }
- }
- else if (groupMessageType == Unibase.Platform.Connect.Enums.GroupMessageType.RemoveParticipants) {
- message = user.name + " " + "removed" + " " + contactinfo.contactName;
- Unibase.Platform.Connect.Components.Chat.Instance().sendGroupDetails(toUserId, groupMessageType, message);
- }
- else if (groupMessageType == Unibase.Platform.Connect.Enums.GroupMessageType.MakeAdmin) {
- message = user.name + " " + "make " + contactinfo.contactName + " " + "as an admin";
- Unibase.Platform.Connect.Components.Chat.Instance().sendGroupDetails(contactinfo.contactId, groupMessageType, message);
- }
- else if (groupMessageType == Unibase.Platform.Connect.Enums.GroupMessageType.RemoveAdmin) {
- message = user.name + " " + "removed " + contactinfo.contactName + " " + "as an admin";
- Unibase.Platform.Connect.Components.Chat.Instance().sendGroupDetails(contactinfo.contactId, groupMessageType, message);
- }
- else if (groupMessageType == Unibase.Platform.Connect.Enums.GroupMessageType.ChangeGroupName) {
- message = user.name + " " + "Changed Groupname" + " " + "";
- Unibase.Platform.Connect.Components.Chat.Instance().sendGroupDetails(0, groupMessageType, message);
- }
- else if (groupMessageType == Unibase.Platform.Connect.Enums.GroupMessageType.ChangeProfilePic) {
- message = user.name + " " + "changed profile image" + "," + oldPhotoUrl + "|" + newPhotoUrl;
- Unibase.Platform.Connect.Components.Chat.Instance().sendGroupDetails(0, groupMessageType, message);
- }
- else if (groupMessageType == Unibase.Platform.Connect.Enums.GroupMessageType.RemoveProfilePic) {
- }
- else if (groupMessageType == Unibase.Platform.Connect.Enums.GroupMessageType.ExitGroup) {
- message = user.name + " " + "left the Group" + " " + Chat.grpdetails[0].groupName;
- Unibase.Platform.Connect.Components.Chat.Instance().sendGroupDetails(0, groupMessageType, message);
- }
- }
- sendGroupDetails(toUserId, grpMessageType, message) {
- let user = Chat.currentUser;
- let req = new Unibase.Platform.Connect.Requests.Chat();
- req.ChatGroupId = Chat.chatGroupId;
- req.Message = message;
- req.GroupMessageType = grpMessageType;
- req.FromUserId = user.userId;
- req.ToUserId = toUserId;
- this._chatmanager.saveChat(req).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- Unibase.Platform.Connect.Components.Chat.chatlistarray.push(response.result);
- var grpinfo = Chat.recentChats.find(x => x.chatGroupId == Chat.chatGroupId);
- if (grpinfo == undefined) {
- var packet = Chat.Instance().reqToClientMessagePacket(response.result);
- packet.groupName = $('.prevcontactname').val().toString();
- packet.isPrivate = false;
- packet.fromUserId = 0;
- packet.message = '';
- Chat.Instance().newChat(packet);
- }
- else {
- Chat.Instance().newMessage(response.result);
- }
- }
- });
- }
- removeGroupParticipant(contactid) {
- var contactname = Chat.contacts.find(x => x.contactId == contactid).contactName;
- var chatgrpinfo = Chat.recentChats.find(x => x.chatGroupId == Chat.chatGroupId);
- Chat.Instance().chatPopup({
- message: "Remove " + contactname + " from " + chatgrpinfo.contactName + " group?",
- buttons: {
- confirm: {
- label: "Remove",
- },
- cancel: {
- label: 'Cancel'
- }
- },
- callback: (result) => {
- if (result) {
- Unibase.Platform.Connect.Components.Chat.Instance().groupDetails(Unibase.Platform.Connect.Enums.GroupMessageType.RemoveParticipants, null, null, contactid);
- Unibase.Platform.Connect.Managers.ChatManager.Instance().RemoveParticipant(Chat.chatGroupId, contactid).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- $('#groupParticipantUser_' + contactid).remove();
- var participantcount = Number($('.countChatParticipants').text());
- $('.countChatParticipants').text(participantcount - 1);
- $('.partipant-count').text(participantcount - 1 + " participants");
- $('.lastseen_0').text(participantcount - 1 + " participants");
- Chat.grpdetails.find(x => x.recipientId == contactid).isBlock = true;
- }
- });
- }
- }
- });
- }
- exitGroup() {
- var chatgrpinfo = Chat.recentChats.find(x => x.chatGroupId == Chat.chatGroupId);
- Chat.Instance().chatPopup({
- message: "Exit " + chatgrpinfo.contactName + " group ?",
- buttons: {
- confirm: {
- label: 'Exit',
- },
- cancel: {
- label: 'Cancel'
- }
- },
- callback: (result) => {
- if (result) {
- Unibase.Platform.Connect.Components.Chat.Instance().groupDetails(Unibase.Platform.Connect.Enums.GroupMessageType.ExitGroup, null, null, 0);
- let userid = Chat.currentUser.userId;
- Unibase.Platform.Connect.Managers.ChatManager.Instance().RemoveParticipant(Chat.chatGroupId, userid).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- $('#groupParticipantUser_' + Chat.currentUser.userId).remove();
- $('.ExitFromGroup').addClass('hidden');
- alert("You left the group");
- if ($('.isadmin_true').length == 0) {
- var element = $('.isadmin_false').get(0);
- var contactId = Number($(element).find('.dotsicon').attr('data-contactId'));
- Unibase.Platform.Connect.Managers.ChatManager.Instance().updateAdminStatus(Chat.chatGroupId, contactId, true);
- }
- $('.btn_AddChatParticipants').addClass('hidden');
- Chat.recentChats.find(x => x.chatGroupId == Chat.chatGroupId).isBlock = true;
- $('#chatFooter').addClass('hidden');
- $('.remove_template').removeClass('hidden');
- $('.Profile_image').attr("onchange", "javascript:;");
- $('.save_changes').attr("onclick", "javascript:;");
- $('.edit_grpdetails').attr("onclick", "javascript:;");
- $('.user-last-chat_' + Chat.chatGroupId).removeClass('hidden');
- $('.typing_active_' + Chat.chatGroupId).addClass('hidden').text('');
- $('.typing_active_' + Chat.chatGroupId).attr('data-typingcontacts', '');
- }
- });
- }
- }
- });
- }
- clearChat() {
- this.chatPopup({
- message: "Are you sure you want to clear messages in this chat?",
- buttons: {
- confirm: {
- label: 'Clear',
- className: 'btn btn-primary'
- },
- cancel: {
- label: 'Cancel',
- className: 'btn btn-outline-danger'
- }
- },
- callback: function (result) {
- if (result) {
- let userid = Chat.currentUser.userId;
- Unibase.Platform.Connect.Managers.ChatManager.Instance().clearChat(Chat.chatGroupId, userid).then(function (response) {
- if (response.status == Unibase.Data.Status.Success) {
- $('.messageslist').html('');
- $('.more_msg').addClass('d-none');
- $('.chat_down').addClass('hidden');
- }
- });
- }
- }
- });
- }
- EnableVedio(packet) {
- alert(packet.userName + "video enabled");
- }
- openvideo() {
- let user = Chat.currentUser;
- let _packet = new Unibase.Platform.Connect.Server.Packets.Typing();
- _packet.FromUserId = user.userId;
- _packet.UserName = user.name;
- _packet.ToUserId = Number($('#private_id').val());
- Unibase.Platform.Connect.Components.Chat.instance._chatter.openvideo(_packet);
- }
- profileDetails(type) {
- const instance = this;
- $(".profiledetails").removeClass("hidden");
- $(".Search_participants").addClass('hidden');
- Chat.profiledetailswindow = true;
- Chat.privatewindow = false;
- Chat.chatwindow = false;
- const html = instance._chatTemplate.getProfileTemplate();
- if (Chat.isFullScreen) {
- $('#fullScreenModalContent').html(html);
- $('#fullScreenModal').modal();
- }
- else {
- $('#profileDetailsSection').html(html);
- $("#chatConvoBody").addClass('hidden');
- }
- Chat.routes.push('profile-details');
- instance.profileheader();
- const profilebody = instance._chatTemplate.getprofilebody();
- $('.profileDetails').html(profilebody);
- Chat.Instance().getMediaCount();
- if (!Chat.isPrivate) {
- $('.blockUser').addClass('hidden');
- $('.div-Chat-Groups').addClass('hidden');
- $('.div-Chat-Participants').removeClass('hidden');
- $('.Notify-Chat-Participants').removeClass('hidden');
- $('#userInfoSection').addClass('hidden');
- if (!Chat.isBlock) {
- $('.ExitFromGroup,.div-Chat-Block').removeClass('hidden');
- }
- this.groupParticipants();
- }
- else {
- $('.div-Chat-Participants').addClass('hidden');
- $('.ExitFromGroup').addClass('hiden');
- if (Chat.isBlock) {
- $('.blkbtn-text').text('Unblock User');
- }
- $('.div-Chat-Groups').removeClass('hidden');
- $('.btn_AddChatParticipants').addClass('hidden');
- $('#userInfoSection').removeClass('hidden');
- if (type === 'personal') {
- $('#chatsContactsSection,#profileMediaLink,#starMessagesLink').addClass('hidden');
- $('#profileDetailsSection').addClass('personal-profile');
- this.getCurrentUserGroups();
- }
- else {
- $('.blockUser').removeClass('hidden');
- this.commongroups(Chat.contactId);
- }
- }
- $('.star-messages-count').text(instance.getStarMessagesCount());
- $('#profileMediaLink').click(function () {
- $('#profileHeader,#profileDetailsWrap').addClass('hidden');
- $('#mediaHeader,#profileMediaWrap').removeClass('hidden');
- Chat.routes.push('profile-media');
- instance.mediaFiles();
- $('.div-Chat-Media').addClass('active');
- });
- $('.profile-media-tabs .nav-link').click(function () {
- $('.profile-media-tabs .active').removeClass('active');
- $(this).addClass('active');
- var mediatype = $(this).attr('data-mediatype');
- });
- }
- mediaFiles() {
- const instance = this;
- $('#Chat-Mediafiles').removeClass('tab-pane fade');
- $('#Chat-docfiles,#links_files').addClass('tab-pane fade');
- $('.countMediaFiles').removeClass('hidden');
- $('.linkCount').addClass('hidden');
- $('.countDocFiles').addClass('hidden');
- var MediaFiles = Chat.mediadoclinks.filter(x => x.messageType == 6 || x.messageType == 7 || x.messageType == 8);
- if (MediaFiles.length != 0) {
- var imageshow;
- $("#Chat-Media").html('');
- var count = 0;
- for (let i = 0; i < MediaFiles.length; i++) {
- var messagedate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateFirst(MediaFiles[i].messageSentDate);
- const formattedDate = moment(messagedate).format('DD-MM-YYYY');
- if (!$(`#mediaByDate_${formattedDate}`).length) {
- $("#Chat-Media").append(`<div class="media-by-date" id="mediaByDate_${formattedDate}"><div class="media_date text-dark mb-10 font-12 font-weight-500">${messagedate}</div><div class="d-flex gap-15 media-files" style="flex-wrap: wrap;"></div></div>`);
- }
- if (MediaFiles[i].fileType == null) {
- continue;
- }
- if (MediaFiles[i].fileType.match('image.*')) {
- imageshow = MediaFiles[i].filePath;
- }
- else {
- imageshow = Unibase.Platform.Connect.Components.Chat.Instance().getfileThumbnail(MediaFiles[i].fileType);
- }
- const mediaHtml = instance._chatTemplate.getMediaFiles(MediaFiles[i].filePath, imageshow);
- $(`#mediaByDate_${formattedDate} .media-files`).append(mediaHtml);
- count++;
- }
- $(".countMediaFiles").text(count);
- }
- }
- links() {
- const instance = this;
- $('.countMediaFiles').addClass('hidden');
- $('.linkCount').removeClass('hidden');
- $('.countDocFiles').addClass('hidden');
- $('#links_files').removeClass('tab-pane fade');
- $('#Chat-Mediafiles,#Chat-docfiles').addClass('tab-pane fade');
- var count = 0;
- var links = Chat.mediadoclinks.filter(x => x.messageType == 3);
- if (links.length != 0) {
- $('#Chat-Links').html('');
- for (let i = 0; i < links.length; i++) {
- var messagedate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateFirst(links[i].messageSentDate);
- const formattedDate = moment(messagedate).format('DD-MM-YYYY');
- if (!$(`#linksByDate_${formattedDate}`).length) {
- $('#Chat-Links').append(`<div class="links-by-date" id="linksByDate_${formattedDate}"><div class="link_date text-dark mb-10 font-12 font-weight-500">${messagedate}</div><div class="d-flex flex-column r-gap-10 link-files"></div></div>`);
- }
- const linkHtml = instance._chatTemplate.getLinks(links[i].message);
- $(`#linksByDate_${formattedDate} .link-files`).append(linkHtml);
- count++;
- }
- $('.linkCount').text(count);
- }
- }
- documentFiles() {
- const instance = this;
- $('#Chat-docfiles').removeClass('tab-pane fade');
- $('#links_files,#Chat-Mediafiles').addClass('tab-pane fade');
- $('.countMediaFiles').addClass('hidden');
- $('.linkCount').addClass('hidden');
- $('.countDocFiles').removeClass('hidden');
- var docFiles = Chat.mediadoclinks.filter(x => x.messageType == 4 || x.messageType == 5 || x.messageType == 9);
- if (docFiles.length != 0) {
- $('#Chat-Docs').html('');
- var imageshow;
- var count = 0;
- for (let i = 0; i < docFiles.length; i++) {
- var messagedate = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocalDateFirst(docFiles[i].messageSentDate);
- const formattedDate = moment(messagedate).format('DD-MM-YYYY');
- if (!$(`#documentsByDate_${formattedDate}`).length) {
- $("#Chat-Docs").append(`<div class="documents-by-date" id="documentsByDate_${formattedDate}"><div class="document_date text-dark mb-10 font-12 font-weight-500">${messagedate}</div><div class="d-flex gap-10 document-files" style="flex-wrap: wrap;"></div></div>`);
- }
- if (docFiles[i].fileType != null) {
- if (docFiles[i].fileType.includes('audio') || docFiles[i].fileType.includes('video')) {
- imageshow = Unibase.Platform.Connect.Components.Chat.Instance().getfileThumbnail(docFiles[i].fileType);
- }
- else {
- imageshow = Unibase.Platform.Connect.Components.Chat.Instance().getfileThumbnail(docFiles[i].fileName.substring(docFiles[i].fileName.lastIndexOf('.') + 1));
- }
- }
- const documentHtml = instance._chatTemplate.getMediaFiles(docFiles[i].filePath, imageshow);
- $(`#documentsByDate_${formattedDate} .document-files`).append(documentHtml);
- count++;
- }
- $('.countDocFiles').text(count);
- }
- }
- updateProfile(filepath, chatgroupid) {
- filepath = Chat.Instance().getFilePath(filepath);
- if ($('.ImagePng_' + chatgroupid).find('.chatuser-img').length == 0) {
- $('.ImagePng_' + chatgroupid).find('.avatar-text').remove();
- $('.ImagePng_' + chatgroupid).append('<img src=' + filepath + ' class="avatar-img chatuser-img">');
- }
- else {
- $('.ImagePng_' + chatgroupid).find('.chatuser-img').attr('src', filepath);
- }
- var index = Chat.recentChats.findIndex(x => x.chatGroupId == chatgroupid);
- if (index != -1) {
- Chat.recentChats[index].photoUrl = filepath;
- }
- }
- getFilePath(filepath) {
- if (!filepath.startsWith('http')) {
- filepath = Chat.Instance().getAppUrl() + filepath;
- }
- return filepath;
- }
- updateGroupName(groupName, chatgroupid) {
- $(".grpname_" + chatgroupid).text(groupName);
- }
- commongroups(contactid) {
- const instance = this;
- var html = "";
- var count = 0;
- Unibase.Platform.Connect.Managers.ChatManager.Instance().getChatgroups(contactid).then(function (response) {
- var groups = response.result;
- for (let i = 0; i < groups.length; i++) {
- const grhtml = instance._chatTemplate.getgroupsbycid(groups[i].groupName);
- html += grhtml;
- count++;
- }
- $('.Chat-Chat-Group').html(html).removeClass('hidden');
- $('.countChatGroups').text(count);
- });
- }
- getCurrentUserGroups() {
- const instance = this;
- var html = "";
- var count = 0;
- var groups = Chat.recentChats.filter(chat => chat.isPrivate === false);
- for (let i = 0; i < groups.length; i++) {
- const grhtml = instance._chatTemplate.getgroupsbycid(groups[i].groupName);
- html += grhtml;
- count++;
- }
- $('.Chat-Chat-Group').html(html).removeClass('hidden');
- $('.countChatGroups').text(count);
- }
- OnPrivateWindowOpened(chatGroupId) {
- if (Chat.chatGroupId == chatGroupId) {
- Unibase.Platform.Connect.Managers.ChatManager.Instance().getChatsByGroupId(Chat.chatGroupId).then(function (response) {
- Unibase.Platform.Connect.Components.Chat.chatlistarray = response.result;
- Chat.Instance().updateBulkMessages();
- });
- }
- }
- updateBulkMessages() {
- $('.messageslist').find('.fromuserlist').each(function () {
- var id = $(this).attr('data-chatid');
- if (!Chat.isPrivate && Chat.chatlistarray.find(x => x.chatId == id).messageDeliveredDate != null) {
- Chat.Instance().updateMessageStatus(id);
- }
- else if (Chat.isPrivate) {
- Chat.Instance().updateMessageStatus(id);
- }
- });
- }
- updateMessageStatus(chatId) {
- var chatInfo = Chat.chatlistarray.find(x => x.chatId == chatId);
- if (chatInfo != undefined) {
- if (chatInfo.messageReadDate != null) {
- $('.chat-messages_' + chatInfo.chatId).find('.msg_status').removeClass('msg-status-delivery').addClass('msg-status').html('<i class="zmdi zmdi-check-all"></i>');
- }
- else {
- $('.chat-messages_' + chatInfo.chatId).find('.msg_status').removeClass('msg-status').addClass('msg-status-delivery').html('<i class="zmdi zmdi-check-all"></i>');
- }
- $('.chat-messages_' + chatInfo.chatId).find('.info').removeClass('hidden');
- }
- }
- AddParticipants() {
- $('.group-info-header').addClass('hidden');
- $('.add-participants-header').removeClass('hidden');
- Chat.visibleProfileEl = $('#profileDetailsWrap').children(':visible');
- $('.div-Chat-AddParticipants').removeClass('hidden').siblings().addClass('hidden');
- $('.Search_participants').removeClass('hidden');
- $('#profileTabContent').addClass('hidden');
- $('.btn_saveGroup').removeClass('hidden');
- $('.input-search').removeClass('hidden');
- $('#Chat-docfiles,#links_files,#Chat-Mediafiles').addClass('tab-pane fade');
- Chat.routes.push('add-participants');
- $('#txtSearchParticipants').val('');
- $('.participant_avatar').html('');
- $('.countChatAddParticipants').text(0);
- this.addNewParticipants();
- }
- closeprivatewindow() {
- const instance = this;
- $('#chatConvoBody').addClass('hidden');
- $('#chatsContactsSection').removeClass('hidden');
- $('.morediv').attr("data-isfirst", 'true');
- $('.morediv').attr("data-moreindex", '0');
- $(".chatapp-users-list").removeClass("hidden");
- $(".div_ContactsList").addClass("hidden");
- $('._btncomment').addClass('active');
- $('._btnDisplayUser').removeClass('active');
- Chat.Instance().draftMessage();
- $('.more_msg').addClass('d-none');
- $('#input_msg_send_chatapp').val('');
- $('#txtSearchChats').val('');
- $('.typing').addClass('hidden');
- $("#Chat-Media").html('');
- Chat.fileitems = 0;
- Chat.groupcontacts = [];
- Chat.attachments = [];
- $('#icon_send').addClass('hidden');
- $('#chatEmojis').addClass('hidden');
- $('.messageslist,.div_selected_files,#quoteMsgWrap').html('');
- $('#quoteMsgWrap').addClass('hidden');
- let user = Chat.currentUser;
- let _packet = new Unibase.Platform.Connect.Server.Packets.Connect();
- _packet.UserId = user.userId;
- _packet.UserName = user.name;
- _packet.ActiveChatGroupId = 0;
- _packet.SessionId = user.sessionId;
- _packet.UnibaseId = user.unibaseId;
- instance._chatter.updateActiveChatGroup(_packet, null);
- $('#cam_pic').length && instance.closecam();
- Chat.Instance().displayRecentChats();
- }
- closechatgroup() {
- Chat.groupcontacts = [];
- $('#chatsContactsSection').removeClass('hidden');
- $('#newGroupSection').addClass('hidden');
- }
- EditgroupDetails(groupname) {
- $('#userProfileInfo').find('.Profile_name,.edit_grpdetails').addClass('hidden');
- $('.edit_groupdetailsInput').val(groupname);
- $('#editGroupInputWrap').removeClass('hidden');
- $('.close_details').removeClass('hidden');
- $(".new-group").html('');
- $('.group_name').removeClass('hidden');
- }
- ConnectCall(ChatGroupId, ContactId, ContactName) {
- let user = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- let _packet = new Unibase.Platform.Connect.Server.Packets.Conference();
- _packet.ChatGroupId = Number(ChatGroupId);
- _packet.FromUserId = Number(user.userId);
- _packet.FromUserName = user.name;
- _packet.ToUserId = Number(ContactId);
- _packet.ToUserName = ContactName;
- _packet.SessionId = user.sessionId;
- Unibase.Platform.Connect.Components.Chat.instance._chatter.EnableAudio(_packet, null);
- }
- ConnectVedio(ChatGroupId, ContactId, ContactName) {
- let user = Unibase.Platform.Membership.Infos.Identity.getCurrentUser();
- let _packet = new Unibase.Platform.Connect.Server.Packets.Conference();
- _packet.ChatGroupId = Number(ChatGroupId);
- _packet.FromUserId = Number(user.userId);
- _packet.FromUserName = user.name;
- _packet.ToUserId = Number(ContactId);
- _packet.ToUserName = ContactName;
- _packet.SessionId = user.sessionId;
- Unibase.Platform.Connect.Components.Chat.instance._chatter.EnableVedio(_packet, null);
- }
- EnableMeeting(MeetingId, UserId) {
- var url = 'https://meet.bizgaze.com/lobby/' + MeetingId + '/' + UserId;
- window.open(url, '');
- }
- copyscreen(event) {
- if (event.clipboardData.files.length > 0) {
- var src;
- var files = event.clipboardData.files[0];
- Chat.itemid++;
- var item = { Files: files, Index: Chat.itemid };
- Chat.attachments.push(item);
- var reader = new FileReader();
- reader.addEventListener("load", function () {
- src = reader.result;
- Chat.messagetype = Unibase.Platform.Connect.Enums.MessageType.Video;
- Unibase.Platform.Connect.Components.Chat.Instance().renderthumbnail(src);
- });
- reader.readAsDataURL(files);
- }
- }
- send() {
- if (Chat.isBlock) {
- Chat.Instance().BlockAlert();
- return;
- }
- if (Chat.attachments.length > 0) {
- Unibase.Platform.Connect.Components.Chat.Instance().sendfiles();
- }
- else {
- Unibase.Platform.Connect.Components.Chat.Instance().sendmessage();
- }
- $('#input_msg_send_chatapp').val('').removeAttr('style');
- $('#quoteMsgWrap').html('').addClass('hidden');
- $('#icon_send').addClass('hidden');
- }
- onlinestatus(userid, onlinestatus) {
- if (onlinestatus) {
- if (Chat.privatewindow && Chat.isPrivate == true && Chat.contactId == userid) {
- $('.lastseen_' + userid).text("Online");
- Chat.Instance().updateBulkMessages();
- }
- else {
- $(`#contact_badge_${userid}`).addClass('active');
- Chat.connectedusers.push(userid);
- }
- }
- else {
- $(`#contact_badge_${userid}`).removeClass('active');
- var lastseen = Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocal(new Date());
- $('.lastseen_' + userid).text(lastseen).attr('data-lastseen', new Date().toISOString());
- Chat.recentChats.find(x => x.contactId == userid).lastSeen = new Date().toISOString();
- Chat.connectedusers = Chat.connectedusers.filter(x => x != userid);
- }
- }
- getMediaCount() {
- Unibase.Platform.Connect.Managers.ChatManager.Instance().getMediaCount(Chat.chatGroupId).then(function (response) {
- if (response.result != null) {
- $('.media-links-count').text(response.result.length);
- Chat.mediadoclinks = response.result;
- }
- });
- }
- updatestatus() {
- if (Chat.connectedusers.length > 0) {
- for (let i = 0; i < Chat.connectedusers.length; i++) {
- $(`#contact_badge_${Chat.connectedusers[i]}`).addClass('active');
- $('.lastseen_' + Chat.connectedusers[i]).text("Online");
- }
- }
- }
- voicemsg() {
- const chunks = [];
- var recorder, gumStream;
- $('.record_div').removeClass('hidden');
- const second = 1000;
- var minute = second * 60;
- var hour = minute * 60;
- let countDown = new Date().getTime(), x = setInterval(function () {
- let now = new Date().getTime(), distance = now - countDown;
- document.getElementById('minutes').innerText = Math.floor((distance % (hour)) / (minute)).toString(),
- document.getElementById('seconds').innerText = Math.floor((distance % (minute)) / second).toString();
- }, second);
- navigator.mediaDevices.getUserMedia({
- audio: true
- }).then(function (stream) {
- gumStream = stream;
- recorder.ondataavailable = function (e) {
- chunks.push(e.data);
- let blob = new Blob(chunks, { type: 'audio/webm' });
- var reader = new FileReader();
- reader.addEventListener("load", function () {
- var audiofile = Chat.Instance().dataURLtoFile(reader.result, Chat.Instance().getUniqueAudioName());
- var item = {
- Files: audiofile,
- Index: Chat.attachments.length
- };
- Chat.attachments.push(item);
- Chat.Instance().sendfiles();
- }, false);
- reader.readAsDataURL(blob);
- };
- recorder.start();
- });
- $('.voicemsg-send-btn').click(function () {
- document.getElementById('minutes').innerText = '0';
- document.getElementById('seconds').innerText = '0';
- $('.record_div').addClass('hidden');
- if (recorder.state != 'inactive') {
- recorder.stop();
- gumStream.getAudioTracks()[0].stop();
- }
- clearInterval(x);
- });
- }
- webcam() {
- const instance = this;
- var constraints = {
- video: true
- };
- var html = instance._chatTemplate.getWebCamHtml();
- $('.webcam').html(html).removeClass('hidden');
- var camera = document.getElementById('cam_pic');
- navigator.mediaDevices.getUserMedia(constraints).then(function (stream) {
- camera.srcObject = stream;
- Chat.streamdata = stream;
- }).catch(function (err) {
- let message = err.message;
- if (err.name === 'NotReadableError') {
- message = 'It looks like another app using the camera already.';
- }
- $('#cam_pic,#camerControls').addClass('hidden');
- $('#camErrMsg').html(message).removeClass('hidden');
- });
- }
- webcampicture() {
- $('.cam_hidden').addClass('hidden');
- $('.canvas_hidden').removeClass('hidden');
- $('.back_cam').removeClass('d-none');
- $('.send_pic').removeClass('d-none');
- var photo = document.getElementById('cam_image');
- var canvas = document.getElementById('chat_size');
- var video = document.getElementById('cam_pic');
- var context = canvas.getContext('2d');
- context.drawImage(video, 0, 0, canvas.width, canvas.height);
- var data = canvas.toDataURL('image/png');
- photo.setAttribute('src', data);
- }
- getUniqueFileName() {
- var date = new Date().getTime();
- var uuid = 'xxxxxxxx'.replace(/[xy]/g, function (c) {
- var r = (date + Math.random() * 16) % 16 | 0;
- date = Math.floor(date / 16);
- return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
- });
- return uuid + "-image.png";
- }
- getUniqueAudioName() {
- var date = new Date().getTime();
- var uuid = 'xxxxxxxx'.replace(/[xy]/g, function (c) {
- var r = (date + Math.random() * 16) % 16 | 0;
- date = Math.floor(date / 16);
- return (c == 'x' ? r : (r & 0x3 | 0x8)).toString(16);
- });
- return uuid + "-voicemsg.webm";
- }
- webcamimage() {
- var data = $('#cam_image').get(0);
- data = data.currentSrc;
- var filedata = Chat.Instance().dataURLtoFile(data, Chat.Instance().getUniqueFileName());
- this.renderthumbnail(data);
- var len = Chat.attachments.length;
- var item = { Files: filedata, Index: len };
- Chat.attachments.push(item);
- this.closecam();
- Chat.messagetype = 8;
- }
- dataURLtoFile(dataurl, filename) {
- var arr = dataurl.split(','), mime = arr[0].match(/:(.*?);/)[1], bstr = atob(arr[1]), n = bstr.length, u8arr = new Uint8Array(n);
- while (n--) {
- u8arr[n] = bstr.charCodeAt(n);
- }
- return new File([u8arr], filename, { type: mime });
- }
- back_tocam() {
- $('.cam_hidden').removeClass('hidden');
- $('.canvas_hidden').addClass('hidden');
- $('.back_cam').addClass('d-none');
- $('.send_pic').addClass('d-none');
- var camera = document.getElementById('cam_pic');
- camera.srcObject = Chat.streamdata;
- }
- closecam() {
- var camera = document.getElementById('cam_pic');
- if (Chat.streamdata) {
- Chat.streamdata.getTracks().forEach(function (track) {
- track.stop();
- camera.srcObject = null;
- });
- }
- $('.webcam').html('').addClass('hidden');
- }
- status(users) {
- Chat.connectedusers = [];
- Chat.connectedusers = users;
- }
- loadEmojiCategories() {
- const instance = this;
- const emojiEl = $('#chatEmojis');
- const emojiCategories = [128512, 128070, 127871, 128273, 127801, 128002, 128640, 9742, 9881];
- const html = `<div class="emojis-wrap"><div class="tab-content emojis-tab-content mt-0 biz-bg-hightlight-color_10 biz-custom-scrollbar" id="emojiTabContent"></div><ul class="nav nav-tabs justify-content-between emoji-cat-tabs border-0 biz-bg-hightlight-color_20" id="emojiCategoryTabs" role="tablist"></ul></div>`;
- emojiEl.html(html);
- $('#emojiTabContent').html('');
- const emojiCategoriesHtml = emojiCategories.map((cat) => {
- return `<li class="nav-item"><a href="javascript:;" class="nav-link emoji-cat" id="emojiCat_${cat}" data-toggle="tab" data-target="#categoryEmojis_${cat}" role="tab" onclick="Unibase.Platform.Connect.Components.Chat.Instance().loadCategoryEmojis(${cat});">&#${cat}</a></li>`;
- }).join('');
- instance.loadCategoryEmojis(128512);
- $('#emojiCategoryTabs').html(emojiCategoriesHtml);
- emojiEl.find('.emoji-cat:first,.tab-pane:first').addClass('show active');
- }
- loadCategoryEmojis(code) {
- if (!$(`#categoryEmojis_${code}`).length) {
- let html = `<div class="tab-pane fade" id="categoryEmojis_${code}" role="tabpanel"><div class="emojis-content d-flex flex-wrap">`;
- for (let i = 1; i <= 75; i++) {
- html += `<a class="emoji-icon" id="emoji_${code}" onclick="Unibase.Platform.Connect.Components.Chat.Instance().appendEmojiToChatInput('&#${code}');">&#${code}</a>`;
- code++;
- }
- html = `${html}</div></div>`;
- $('#emojiTabContent').append(html);
- }
- }
- appendEmojiToChatInput(emojicode) {
- var textVal = $('#input_msg_send_chatapp').val();
- $('#input_msg_send_chatapp').val(textVal + '' + emojicode).focus();
- $('#icon_send').removeClass('hidden');
- $('#recordaudio').addClass('hidden');
- let user = Chat.currentUser;
- let _packet = new Unibase.Platform.Connect.Server.Packets.Typing();
- _packet.FromUserId = user.userId;
- _packet.UserName = user.name;
- _packet.ToUserId = Number($('#private_id').val());
- _packet.ChatGroupId = Chat.chatGroupId;
- _packet.Isprivate = Chat.isPrivate;
- _packet.SessionId = user.sessionId;
- Unibase.Platform.Connect.Components.Chat.instance._chatter.onTyping(_packet, null);
- }
- chatPopup(config) {
- let popUpHtml = '';
- if (!jQuery.isEmptyObject(config)) {
- const buttons = config.buttons;
- popUpHtml += `<div class="modal fade chat-popup biz-custom-scrollbar" id="chatPopUp" ${!Chat.isFullScreen ? 'data-backdrop="false"' : ''}>
- <div class="modal-dialog modal-dialog-centered" role="document">
- <div class="modal-content">
- ${config.message && `<div class="modal-body pa-10">
- <div class="chat-popup-msg font-weight-500 text-dark">${config.message}</div>
- </div>`}
- ${config.buttons && `<div class="modal-footer pa-10">
- <a href="javascript:;" class="${buttons.cancel.className || 'btn btn-outline-danger'} btn-sm cancel-btn" id="chatPopupCancelBtn">${buttons.cancel.label || 'Close'}</a>
- <a href="javascript:;" class="${buttons.confirm.className || 'btn btn-primary'} btn-sm confirm-btn" id="chatPopupConfirmBtn">${buttons.confirm.label || 'Save'}</a>
- </div>`}
- </div>
- </div>
- </div>`;
- popUpHtml += '<div class="modal-backdrop fade show position-absolute chat-popup-backdrop" id="chatPopupBackdrop"></div>';
- $('#chatAppWrap').append(popUpHtml);
- $('#chatPopUp').modal();
- $('#chatPopUp').on('hidden.bs.modal', function () {
- $('#chatPopUp,#chatPopupBackdrop').remove();
- });
- $('#chatPopUp').find('#chatPopupConfirmBtn,#chatPopupCancelBtn').click(function () {
- if ($(this).hasClass('confirm-btn')) {
- config.callback(true);
- }
- else {
- config.callback(false);
- }
- $('#chatPopUp').modal('hide');
- });
- $('#chatPopupBackdrop').click(function () {
- $('#chatPopUp').modal('hide');
- });
- }
- }
- getEmojiFontSize(msg) {
- const instance = this;
- let emojiFontSize = '';
- const regexExp = /(\u00a9|\u00ae|[\u2000-\u3300]|\ud83c[\ud000-\udfff]|\ud83d[\ud000-\udfff]|\ud83e[\ud000-\udfff])/gi;
- if (regexExp.test(msg) && instance.isOnlyOneEmoji(msg)) {
- emojiFontSize = 'font-25 line-height-10';
- }
- return emojiFontSize;
- }
- isOnlyOneEmoji(emoji) {
- const emojiPattern = this._chatTemplate.getEmojiPattern();
- return emojiPattern.test(emoji);
- }
- showProfileImgPreview() {
- var contact;
- if (Chat.isPrivate) {
- contact = Chat.AllContacts.find(x => x.contactId == Chat.contactId);
- }
- else {
- contact = Chat.AllContacts.find(x => x.chatGroupId == Chat.chatGroupId);
- }
- const popupHtml = `<div class="modal fade chat-img-preview-modal chat-popup panel-preview" id="chatImgPreviewModal" tabindex="-1" role="dialog" data-backdrop="false">
- <div class="modal-dialog h-100 my-0" role="document">
- <div class="modal-content h-100">
- <div class="modal-body h-100">
- <img src="${contact.photoUrl}" class="preview-img img-fluid" onerror="ReloadImage(event)" data-dynamic="1" data-loaded="0">
- </div>
- </div>
- </div>
- </div>
- <div class="modal-backdrop fade show position-absolute" id="chatPopupBackdrop"></div>`;
- $('#chatAppWrap').append(popupHtml);
- $('#chatImgPreviewModal').modal();
- $('#chatImgPreviewModal').on('hidden.bs.modal', function () {
- $('#chatImgPreviewModal,#chatPopupBackdrop').remove();
- });
- $('#chatPopupBackdrop').click(function () {
- $('#chatImgPreviewModal').modal('hide');
- });
- }
- loadChatFullScreen() {
- if (Chat.isFullScreen) {
- $('#chatPanelBodyWrap').addClass('chat-fullscreen');
- $('#profileDetailsSection').html('');
- $('#chatConvoBody').removeClass('hidden');
- $('#chatMsgHeader').addClass('biz-bg-hightlight-color_10');
- if ($('.list-groupchat .contactuser').length) {
- $('.list-groupchat .contactuser').first().trigger('click');
- }
- else {
- $('#chatNoConvoMsgWrap').removeClass('hidden');
- $('#chatConvoBody').addClass('hidden');
- }
- $('#chatFullScreenBtn').text('Exit Fullscreen');
- $('#fullScreenModal').on('show.bs.modal', function () {
- $('#fullScreenModalBackdrop').removeClass('hidden');
- });
- $('#fullScreenModal').on('hidden.bs.modal', function () {
- $('#fullScreenModalContent').empty();
- $('#fullScreenModalBackdrop').addClass('hidden');
- });
- }
- }
- toggleChatFullScreen() {
- const instance = this;
- if (Chat.isFullScreen) {
- Chat.isFullScreen = false;
- $('.chat-group-item.biz-bg-hightlight-color_20').removeClass('biz-bg-hightlight-color_20');
- $('#chatFullScreenBtn').text('Fullscreen');
- $('#chatConvoBody').addClass('hidden').detach().insertAfter('#chatsContactsSection');
- $('#chatConvoSection,#chatFullScreenModalWrap').remove();
- $('#chatPanelBodyWrap').removeClass('chat-fullscreen').detach().appendTo('.settings-panel-wrap');
- }
- else {
- Chat.isFullScreen = true;
- $('#profileDetailsSection').html('');
- $('#chatPanelBodyWrap').addClass('chat-fullscreen').detach().appendTo('#bizgaze_body');
- $('#chatAppWrap').append(instance._chatTemplate.getChatFullScreenHtml());
- $('#chatConvoBody').removeClass('hidden').detach().appendTo('#chatConvoSection');
- $('#chatMsgHeader').addClass('biz-bg-hightlight-color_10');
- if ($('.list-groupchat .contactuser').length) {
- $('.list-groupchat .contactuser').first().trigger('click');
- }
- else {
- $('#chatNoConvoMsgWrap').removeClass('hidden');
- $('#chatConvoBody').addClass('hidden');
- }
- $('#chatFullScreenBtn').text('Exit Fullscreen');
- $('#fullScreenModal').on('show.bs.modal', function () {
- $('#fullScreenModalBackdrop').removeClass('hidden');
- });
- $('#fullScreenModal').on('hidden.bs.modal', function () {
- $('#fullScreenModalContent').empty();
- $('#fullScreenModalBackdrop').addClass('hidden');
- });
- }
- setTimeout(() => {
- eval(`$('#chatAppWrap .simple-scroll-bar').each(function(i,e){new SimpleBar(e);});`);
- }, 200);
- }
- refreshlastseen() {
- if (Chat.isBlock) {
- $('.lastseen_' + Chat.contactId).text('');
- return;
- }
- var text = $('.lastseen_' + Chat.contactId).text();
- if (text != "Online" && Chat.isPrivate) {
- var lastseen = $('.lastseen_' + Chat.contactId).attr('data-lastseen') == '' ? '' : Unibase.Platform.Helpers.DateTimeHelper.Instance().formatLocal($('.lastseen_' + Chat.contactId).attr('data-lastseen'));
- if (lastseen != 'Invalid date') {
- $('.lastseen_' + Chat.contactId).text(lastseen);
- }
- }
- }
- highlightActiveChat() {
- const activeChatId = $('#hfChats_chatGroupId').val();
- $('.chat-group-item.biz-bg-hightlight-color_20').removeClass('biz-bg-hightlight-color_20');
- $(`.chat-group-item.userChat_${activeChatId}`).addClass('biz-bg-hightlight-color_20');
- }
- loadgroupcontacts() {
- const instance = this;
- var RecipientId;
- let contacts = Chat.Instance().getContacts().filter(x => x.contactId != this.currentUser.userId);
- const newgrp = instance._chatTemplate.getGroupContactsTemplate(contacts);
- $(".list-chatgroup").html(newgrp);
- $("input[name='chatgroupuser']").click(function (e) {
- e.stopPropagation();
- $('.btn_saveGroup').removeClass('hidden');
- if (!$(this).is(":checked")) {
- RecipientId = Number($(this).val());
- Chat.groupcontacts = Chat.groupcontacts.filter(x => x.RecipientId != RecipientId);
- if (Chat.groupcontacts.length == 0) {
- $(".btn_saveGroup").addClass("hidden");
- }
- }
- else {
- RecipientId = +$(this).val();
- var req = new Unibase.Platform.Connect.Requests.ChatRecipient();
- req.RecipientId = RecipientId;
- Chat.groupcontacts.push(req);
- }
- instance.appendSelectedGroupParticipants();
- });
- $('.list-chatgroup .groupuser').click(function (e) {
- $(this).find('input[name="chatgroupuser"]').trigger('click');
- });
- $('.list-chatgroup .chat-call-options').click(function (e) {
- e.stopPropagation();
- });
- $('#clearGroupContactsSearch').click(function () {
- $(this).addClass('hidden');
- $('#txtSearchParticipants').val('').trigger('keyup');
- });
- }
- forwardMessage(chatid) {
- var isSelected = false;
- let user = Chat.currentUser;
- let index = Unibase.Platform.Connect.Components.Chat.chatlistarray.findIndex(x => x.chatId == chatid);
- let req = new Unibase.Platform.Connect.Requests.Chat();
- req.FileName = Chat.chatlistarray[index].fileName;
- req.FilePath = Chat.chatlistarray[index].filePath;
- req.FileType = Chat.chatlistarray[index].fileType;
- req.ChatGroupId = 0;
- req.FromUserId = user.userId;
- req.Message = Chat.chatlistarray[index].message;
- req.MessageType = Chat.chatlistarray[index].messageType;
- $('input[name ="forwardcontact"]').each(function () {
- if ($(this).is(':checked')) {
- isSelected = true;
- req.ToUserId = Number($(this).attr('data-contactid'));
- req.ChatGroupId = Number($(this).attr('data-chatgroupid'));
- Unibase.Platform.Connect.Managers.ChatManager.Instance().saveChat(req).then(function (response) {
- if (response.result != null) {
- MessageHelper.Instance().showSuccess("Successfully forwarded", "");
- var packet = Chat.Instance().reqToClientMessagePacket(response.result);
- var contactid = response.result.toUserId;
- var id = contactid;
- packet.isPrivate = true;
- if (contactid == 0) {
- packet.isPrivate = false;
- id = response.result.chatGroupId;
- }
- var contactname = $('.frdid_' + id).attr('data-contactname');
- var photoUrl = $('.frdid_' + id).attr('data-photourl');
- packet.fromUserId = response.result.toUserId;
- packet.chatGroupId = response.result.chatGroupId;
- packet.fromUserName = contactname;
- packet.messageSentDate = new Date();
- packet.toUserPhotoUrl = photoUrl;
- packet.lastSeen = '';
- Chat.Instance().newChat(packet, true);
- if (Chat.chatGroupId == response.result.chatGroupId && Chat.contactId == response.result.toUserId) {
- packet.fromUserId = Chat.currentUser.userId;
- Chat.Instance().newMessage(packet);
- }
- }
- else {
- alert("Failed to forward");
- }
- });
- }
- });
- if (!isSelected) {
- alert('Please select contacts');
- return;
- }
- $('.forward-contacts-section').addClass('hidden');
- $('.chat-convo-body').removeClass('hidden');
- }
- forwardContacts() {
- const instance = this;
- var contacts, html;
- contacts = Chat.Instance().getContacts().filter(x => x.ContactId != Chat.currentUser.userId);
- var groups = Chat.recentChats.filter(x => x.isPrivate == false);
- var mergedContacts = contacts.concat(groups);
- html = instance._chatTemplate.getForwardContacts(mergedContacts);
- $('.forwardcontacts_list').html(html);
- }
- groupParticipants() {
- Unibase.Platform.Connect.Managers.ChatManager.Instance().getChatRecipientsByGroupId(Chat.chatGroupId).then(function (response) {
- Chat.grpdetails = response.result;
- if (Chat.grpdetails != null) {
- $('.Notify-Chat-Participants').html('');
- Unibase.Platform.Connect.Components.Chat.Instance().participantsList(Chat.grpdetails);
- }
- });
- }
- participantsList(participants) {
- var isleft = participants.find(x => x.recipientId == Chat.currentUser.userId).isBlock;
- Chat.recentChats.find(x => x.chatGroupId == participants[0].chatGroupId).isBlock = isleft;
- if (Chat.chatGroupId == participants[0].chatGroupId) {
- Chat.grpdetails = participants;
- participants = participants.filter(x => x.isBlock == false);
- if (isleft) {
- $('.ExitFromGroup').addClass('hidden');
- $('#chatFooter').addClass('hidden');
- $('.remove_template').removeClass('hidden');
- }
- else {
- $('.ExitFromGroup').removeClass('hidden');
- $('#chatFooter').removeClass('hidden');
- $('.remove_template').addClass('hidden');
- $('.lastseen_0').text(participants.length + " participants");
- }
- Chat.isBlock = isleft;
- if (Chat.profiledetailswindow) {
- const adminsort = participants.sort((a, b) => b.isAdmin - a.isAdmin);
- for (let i = 0; i < adminsort.length; i++) {
- if ($('.participant_' + adminsort[i].recipientId).length == 0) {
- var html = Unibase.Platform.Connect.Components.ChatTemplate.Instance().getGroupParticipants(adminsort[i]);
- $('.Notify-Chat-Participants').append(html);
- }
- else {
- continue;
- }
- }
- $('.countChatParticipants').text(adminsort.length);
- }
- $('.partipant-count').text(participants.length + " participants");
- }
- }
- searchParticipants(searchClass, mainClass, defaultClass = '') {
- var matchedCount = 0;
- var searchTerm = $('.' + searchClass).val().toString().toLowerCase();
- $('.' + mainClass).each(function () {
- var contactname = $(this).attr('data-contactname').toLowerCase();
- if (contactname.includes(searchTerm)) {
- $(this).removeClass('hidden');
- matchedCount++;
- }
- else {
- $(this).addClass('hidden');
- }
- });
- if (matchedCount == 0 && defaultClass != '') {
- $('.' + defaultClass).removeClass('d-none');
- }
- }
- nextAdmin() {
- var isadminlogin = $('.participents_' + Chat.currentUser.userId).attr('data-isadmin') === 'true';
- var contactid = Number($('.participents').find('.isadmin_false').first().attr('data-contactId'));
- if (isadminlogin && contactid != 0) {
- Unibase.Platform.Connect.Managers.ChatManager.Instance().updateAdminStatus(Chat.chatGroupId, contactid, true).then(function () {
- $('.participant_' + contactid).attr('data-isadmin', 'true');
- $('.contactname_' + contactid).html('<span class="badge badge-sm badge-soft-primary font-10 recipientbadge">Admin</span>');
- });
- }
- }
- adminOptions() {
- var isAdminLogin = $('.participant_' + Chat.currentUser.userId).attr('data-isadmin') === 'true';
- var data = event.currentTarget;
- var isAdmin = $(data).attr('data-isadmin') === 'true';
- var contactid = Number($(data).attr('data-contactid'));
- var chatgroupid = Number($(data).attr('data-chatgroupid'));
- var options = "";
- if (isAdminLogin) {
- options = '<a class="dropdown-item" href ="javascript:void(0);" id="remove_participants hidden" onclick="Unibase.Platform.Connect.Components.Chat.Instance().removeGroupParticipant(\'' + contactid + '\')"><span>Remove</span></a>';
- if (!isAdmin) {
- options += '<a class="dropdown-item" href ="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().updateAdminStatus(\'' + contactid + '\',' + true + ')" id="make_admin"><span>Make Admin</span></a>';
- }
- else {
- options += '<a class="dropdown-item" href ="javascript:void(0);" onclick="Unibase.Platform.Connect.Components.Chat.Instance().updateAdminStatus(\'' + contactid + '\',' + false + ')" id="remove_admin"><span>Remove Admin</span></a>';
- }
- }
- options += `<a class="dropdown-item" href ="javascript:void(0);" data-contactId=${contactid} data-chatgroupid=${chatgroupid} onclick="Unibase.Platform.Connect.Components.Chat.Instance().privatewindow(${contactid})" id="msgConvoItem_${contactid}"><span>Send Message</span></a>`;
- $(data).find('.grpoptionshtml').html(options);
- }
- displayRecentChats() {
- var contacts = Chat.contacts.filter(x => x.contactId != Chat.currentUser.userId);
- $('#chatHeaderNavTabs .active').removeClass('active');
- $('._btncomment').addClass('active');
- $('.chatapp-users-list').removeClass('hidden');
- $('.div_ContactsList').addClass('hidden');
- Chat.groupcontacts = [];
- Chat.grpdetails = [];
- var zerochats = Chat.recentChats.length == 0 ? "" : "hidden";
- var html = `<li class='flex-center mt-4 defaultClass ${zerochats}'>No Chats found</li>`;
- for (var i = 0; i < Chat.recentChats.length; i++) {
- contacts = contacts.filter(x => x.contactId != Chat.recentChats[i].contactId);
- }
- var a = Chat.recentChats.filter(x => x.lastMessage == '').sort((a, b) => a.contactName.localeCompare(b.contactName));
- var b = Chat.recentChats.filter(x => x.lastMessage != '');
- const sortByDate = b => {
- const sorter = (x, y) => {
- return new Date(y.messageLastUpdatedDate).getTime() - new Date(x.messageLastUpdatedDate).getTime();
- };
- b.sort(sorter);
- };
- sortByDate(b);
- var c = b.concat(a);
- var allconatcts = c.concat(contacts);
- Chat.AllContacts = c.concat(Chat.contacts);
- for (let i = 0; i < allconatcts.length; i++) {
- if (i == c.length) {
- html += '<li class="flex-center mt-2 mr-200 defaultClass" style="font-weight:900;font-size:large">Contacts</li>';
- }
- ;
- html += Chat.Instance()._chatTemplate.getRecentChatsTemplate(allconatcts[i]);
- }
- $('.list-groupchat').html(html);
- Chat.Instance().updatestatus();
- if (Chat.isFullScreen) {
- if ($('.messageslist').is(':empty')) {
- $('.list-groupchat .contactuser').first().trigger('click');
- }
- else {
- this.highlightActiveChat();
- }
- }
- }
- getRecentChats() {
- Unibase.Platform.Connect.Managers.ChatManager.Instance().getChats().then(function (response) {
- if (response.result != null) {
- Chat.recentChats = response.result;
- Chat.Instance().displayRecentChats();
- }
- });
- }
- removeParticipants(recipientId, chatGroupId) {
- if (Chat.currentUser.userId == recipientId) {
- if (Chat.chatGroupId == chatGroupId) {
- $('.ExitFromGroup').addClass('hidden');
- $('#chatFooter').addClass('hidden');
- $('.remove_template').removeClass('hidden');
- $('.Profile_image').attr("onchange", "javascript:;");
- $('.save_changes').attr("onclick", "javascript:;");
- $('.edit_grpdetails').attr("onclick", "javascript:;");
- $('.btn_AddChatParticipants').addClass('hidden');
- $('.lastseen_0').text('');
- $('.user-last-chat_' + Chat.chatGroupId).removeClass('hidden');
- $('.typing_active_' + Chat.chatGroupId).addClass('hidden').text('');
- $('.typing_active_' + Chat.chatGroupId).attr('data-typingcontacts', '');
- }
- var index = Chat.recentChats.findIndex(x => x.chatGroupId == chatGroupId);
- if (index != -1) {
- Chat.recentChats[index].isBlock = true;
- }
- Chat.isBlock = true;
- }
- var participantCount = Number($('.countChatParticipants').text());
- $('.countChatParticipants').text(participantCount - 1);
- $('#groupParticipantUser_' + recipientId).remove();
- }
- makeAdmin(RecipientId, chatGroupId) {
- var style = "";
- if (chatGroupId == Chat.chatGroupId) {
- if (RecipientId == Chat.currentUser.userId) {
- $('.participant_' + Chat.currentUser.userId).attr('data-isadmin', 'true');
- $('.btn_AddChatParticipants').removeClass('hidden');
- $().removeClass('hidden');
- style = 'style="position:absolute;right:26px"';
- }
- else {
- $('.fromParticipant_' + RecipientId).attr('data-isadmin', 'true');
- }
- $('.participant_' + RecipientId).removeClass('isadmin_false').addClass('isadmin_true');
- $('#contactName_' + RecipientId).append('<span class="badge badge-sm badge-soft-primary font-10 recipientbadge" ' + style + '>Admin</span>');
- }
- }
- removeAdmin(RecipientId, chatGroupId) {
- if (Chat.chatGroupId == chatGroupId) {
- if (Chat.currentUser.userId == RecipientId) {
- $('.participant_' + Chat.currentUser.userId).attr('data-isadmin', 'false');
- $('.btn_AddChatParticipants').addClass('hidden');
- $('.btn_AddChatParticipants').addClass('hidden');
- $('.Profile_image').attr("onchange", "javascript:;");
- $('.save_changes').attr("onclick", "javascript:;");
- $('.edit_grpdetails').attr("onclick", "javascript:;");
- }
- else {
- $('.fromParticipant_' + RecipientId).attr('data-isadmin', 'false');
- }
- $('.participant_' + RecipientId).removeClass('isadmin_true').addClass('isadmin_false');
- $('#contactName_' + RecipientId).find('.recipientbadge').remove();
- }
- }
- addParticipants(chatGrpDetails) {
- Unibase.Platform.Connect.Components.Chat.Instance().participantsList(chatGrpDetails);
- }
- onMessageReceived(packet) {
- Unibase.Platform.Connect.Components.Chat.chatlistarray.push(packet);
- if ((Chat.chatGroupId == packet.chatGroupId)) {
- Chat.Instance().newMessage(packet);
- }
- else {
- Chat.Instance().newChat(packet);
- }
- Chat.mediadoclinks = Chat.chatlistarray.filter(x => x.messageType != 1 && 2).filter(x => x.isDelete == false).filter(x => x.groupMessageType == 0);
- }
- newChat(packet, disableunreadcount = false) {
- var messagecount = Number($('.unread_messages_' + packet.chatGroupId + '').text());
- var obj = Chat.recentChats.find(x => x.chatGroupId == packet.chatGroupId);
- if (obj == undefined) {
- obj = new Unibase.Platform.Connect.Infos.ChatContact();
- obj.isPrivate = packet.isPrivate;
- obj.contactId = packet.fromUserId;
- obj.contactName = packet.fromUserName;
- obj.chatGroupId = packet.chatGroupId;
- if (!obj.isPrivate) {
- obj.contactName = packet.groupName;
- obj.photoUrl = packet.toUserPhotoUrl;
- obj.contactId = 0;
- }
- else {
- obj.photoUrl = Chat.contacts.find(x => x.contactId == packet.fromUserId).photoUrl;
- }
- Chat.recentChats.push(obj);
- }
- else {
- $('.list-groupchat').find('.userChat_' + packet.chatGroupId).remove();
- }
- var message = "", lastChatid = "", unreadcount = 0;
- obj.messageLastUpdatedDate = packet.messageSentDate;
- if (packet.groupMessageType == 0) {
- message = packet.message;
- if (packet.filePath != null) {
- message = packet.fileName;
- }
- message = message;
- lastChatid = packet.chatId;
- if (Chat.chatGroupId != packet.chatGroupId && !disableunreadcount) {
- unreadcount = messagecount + 1;
- }
- }
- obj.lastMessage = message;
- obj.lastChatId = lastChatid;
- obj.unReadMessagesCount = unreadcount;
- Chat.recentChats[Chat.recentChats.findIndex(x => x.chatGroupId == packet.chatGroupId)] = obj;
- var html = Chat.Instance()._chatTemplate.getRecentChatsTemplate(obj);
- $('.list-groupchat').prepend(html);
- $('.defaultClass').addClass('hidden');
- this.updatestatus();
- }
- closeAddParticipants() {
- $(".add_participants_search").val('');
- $('.group-info-header').removeClass('hidden');
- $('.add-participants-header').addClass('hidden');
- $('.div-Chat-AddParticipants').addClass('hidden');
- $('.Search_participants').addClass('hidden');
- $(Chat.visibleProfileEl).removeClass('hidden');
- }
- closeMediaInfo() {
- $('#profileHeader,#profileDetailsWrap').removeClass('hidden');
- $('#mediaHeader,#profileMediaWrap').addClass('hidden');
- $('.media-links-count').text(Chat.mediadoclinks.length);
- }
- closeContactInfo() {
- $('#profileDetailsSection').addClass('hidden');
- $('.participants_search').val('');
- if (!Chat.isFullScreen) {
- if ($('#profileDetailsSection').hasClass('personal-profile')) {
- $('#profileDetailsSection').removeClass('personal-profile');
- $('#chatsContactsSection').removeClass('hidden');
- }
- else {
- $('#chatConvoBody').removeClass('hidden');
- }
- }
- else {
- $('#fullScreenModal').modal('hide');
- }
- }
- filetemplate(fileinfo) {
- var msghtml = '';
- const fileName = fileinfo.name;
- const fileType = fileinfo.type;
- var fileimagepath;
- let imgClass = '';
- let audioplayBtnHtml = '';
- var messagedate = moment.utc(new Date().toString()).format("MM-DD-YYYY");
- if ($('#date_' + messagedate).length == 0) {
- msghtml += Chat.Instance().getMessageDate(messagedate);
- }
- fileimagepath = Unibase.Platform.Connect.Components.Chat.Instance().getfileThumbnail(fileType);
- msghtml += '<li class="chat-messages_temp chat-message-wrap"><div class="messagemedia-body"><div class="sent-messages"><div class="message-div"><div class="single-message"><div class="message-wrapper">' + audioplayBtnHtml + '<span class="message-span flex-grow-1"><img class="thumb_file loadimg img-fluid "' + imgClass + '" src="' + fileimagepath + '" data-dynamic="1"><div class="file_name d-flex align-items-center font-10"><span class="text-truncate">' + fileName + '</span></div></span><span class="uploading-icon"><i class="fa fa-spinner fa-pulse" style="color:black;font-size:12px"></i></span><span class="error-icon btn btn-icon btn-icon-circle btn-rounded btn-outline-red btn-xs btn-icon-wrap hidden"><i class="fa fa-exclamation" style="color:red;font-size:15px"></i></span></div></div></div></div></div></li>';
- $('.messageslist').append(msghtml);
- }
- chatdown() {
- let lastelement = $('.chat-message-wrap').last();
- lastelement[0].scrollIntoView();
- $('.chat_down').addClass('hidden');
- }
- showchatdownicon() {
- var lastelement = $('.chat-message-wrap').last();
- if (lastelement.length == 0) {
- return;
- }
- var a = lastelement[0].classList[0];
- const box = document.querySelector('.' + a);
- const rect = box.getBoundingClientRect();
- var isInViewport = rect.top >= 0 &&
- rect.left >= 0 &&
- rect.bottom <= (window.innerHeight || document.documentElement.clientHeight) &&
- rect.right <= (window.innerWidth || document.documentElement.clientWidth);
- if (rect.top < 0) {
- isInViewport = true;
- }
- if (isInViewport) {
- $('.chat_down').addClass('hidden');
- }
- else {
- $('.chat_down').removeClass('hidden');
- }
- }
- readmore(chatid) {
- $('.read-more_' + chatid).addClass('hidden');
- $('.remain-data_' + chatid).removeClass('hidden');
- $('.doted_' + chatid).addClass('hidden');
- }
- static Instance() {
- if (this.instance === undefined)
- this.instance = new Chat();
- return this.instance;
- }
- }
- Chat.chatlistarray = [];
- Chat.grpdetails = [];
- Chat.contacts = [];
- Chat.groupcontacts = [];
- Chat.recentChats = [];
- Chat.MultiSelect = [];
- Chat.messagesid = [];
- Chat.connectedusers = [];
- Chat.istyping = true;
- Chat.attachments = [];
- Chat.fileitems = 0;
- Chat.itemid = 0;
- Chat.isEdit = false;
- Chat.messagetype = 0;
- Chat.appUrl = '';
- Chat.contactsCount = 0;
- Chat.MediaFiles = [];
- Chat.contactId = 0;
- Chat.chatGroupId = 0;
- Chat.isPrivate = false;
- Chat.isBlock = false;
- Chat.isFullScreen = false;
- Chat.routes = [];
- Chat.AllContacts = [];
- Chat.mediadoclinks = [];
- Components.Chat = Chat;
- })(Components = Connect.Components || (Connect.Components = {}));
- })(Connect = Platform.Connect || (Platform.Connect = {}));
- })(Platform = Unibase.Platform || (Unibase.Platform = {}));
- })(Unibase || (Unibase = {}));
|