diff --git a/packages/rocketchat-livechat/app/client/routes/router.coffee b/packages/rocketchat-livechat/app/client/routes/router.coffee index fa29b4963b48e3051fc533b6db64040a4c34a72b..1105938efd909a826cdff2c173366956960a41f9 100644 --- a/packages/rocketchat-livechat/app/client/routes/router.coffee +++ b/packages/rocketchat-livechat/app/client/routes/router.coffee @@ -9,7 +9,4 @@ FlowRouter.route '/livechat', ] action: -> - if Meteor.userId() - BlazeLayout.render 'main', {center: 'room'} - else - BlazeLayout.render 'main', {center: 'register'} + BlazeLayout.render 'main', {center: 'room'} diff --git a/packages/rocketchat-livechat/app/client/stylesheets/_variables.less b/packages/rocketchat-livechat/app/client/stylesheets/_variables.less index 516e8695e1038b77ce2aa9ad76eb03465fad1833..e746bcf8cad8bb6c265e9615ce822df0fe6abe1e 100644 --- a/packages/rocketchat-livechat/app/client/stylesheets/_variables.less +++ b/packages/rocketchat-livechat/app/client/stylesheets/_variables.less @@ -1,5 +1,5 @@ @header-min-height: 30px; -@footer-min-height: 52px; +@footer-min-height: 42px; @rooms-box-width: 260px; @flex-tab-width: 400px; diff --git a/packages/rocketchat-livechat/app/client/stylesheets/fontello.css b/packages/rocketchat-livechat/app/client/stylesheets/fontello.css new file mode 100644 index 0000000000000000000000000000000000000000..fc28243c86e73778f8de333faf238f8a29028976 --- /dev/null +++ b/packages/rocketchat-livechat/app/client/stylesheets/fontello.css @@ -0,0 +1,509 @@ +@font-face { + font-family: 'fontello'; + src: url('/fonts/fontello.eot?52343198'); + src: url('/fonts/fontello.eot?52343198#iefix') format('embedded-opentype'), + url('/fonts/fontello.woff?52343198') format('woff'), + url('/fonts/fontello.ttf?52343198') format('truetype'), + url('/fonts/fontello.svg?52343198#fontello') format('svg'); + font-weight: normal; + font-style: normal; +} +/* Chrome hack: SVG is rendered more smooth in Windozze. 100% magic, uncomment if you need it. */ +/* Note, that will break hinting! In other OS-es font will be not as sharp as it could be */ +/* +@media screen and (-webkit-min-device-pixel-ratio:0) { + @font-face { + font-family: 'fontello'; + src: url('/fonts/fontello.svg?52343198#fontello') format('svg'); + } +} +*/ + + [class^="icon-"]:before, [class*=" icon-"]:before { + font-family: "fontello"; + font-style: normal; + font-weight: normal; + speak: none; + + display: inline-block; + text-decoration: inherit; + width: 1em; + margin-right: .2em; + text-align: center; + /* opacity: .8; */ + + /* For safety - reset parent styles, that can break glyph codes*/ + font-variant: normal; + text-transform: none; + + /* fix buttons height, for twitter bootstrap */ + line-height: 1em; + + /* Animation center compensation - margins should be symmetric */ + /* remove if not needed */ + margin-left: .2em; + + /* you can be more comfortable with increased icons size */ + /* font-size: 120%; */ + + /* Font smoothing. That was taken from TWBS */ + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; + + /* Uncomment for 3D effect */ + /* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */ +} + +.icon-religious-islam:before { content: '\21'; } /* '!' */ +.icon-religious-jewish:before { content: '\22'; } /* '"' */ +.icon-graduation-cap-1:before { content: '\23'; } /* '#' */ +.icon-universal-access:before { content: '\24'; } /* '$' */ +.icon-paper-plane:before { content: '\25'; } /* '%' */ +.icon-paw:before { content: '\26'; } /* '&' */ +.icon-spoon:before { content: '\27'; } /* ''' */ +.icon-chrome:before { content: '\2a'; } /* '*' */ +.icon-opera:before { content: '\2b'; } /* '+' */ +.icon-crown:before { content: '\2c'; } /* ',' */ +.icon-recycle:before { content: '\2d'; } /* '-' */ +.icon-note-beamed:before { content: '\2e'; } /* '.' */ +.icon-ie:before { content: '\2f'; } /* '/' */ +.icon-note:before { content: '\30'; } /* '0' */ +.icon-alert:before { content: '\31'; } /* '1' */ +.icon-chat-1:before { content: '\32'; } /* '2' */ +.icon-360:before { content: '\33'; } /* '3' */ +.icon-cab:before { content: '\34'; } /* '4' */ +.icon-share:before { content: '\35'; } /* '5' */ +.icon-building-filled:before { content: '\36'; } /* '6' */ +.icon-linux:before { content: '\37'; } /* '7' */ +.icon-camera-tour:before { content: '\38'; } /* '8' */ +.icon-spin1:before { content: '\39'; } /* '9' */ +.icon-spin2:before { content: '\3a'; } /* ':' */ +.icon-spin3:before { content: '\3b'; } /* ';' */ +.icon-left-open:before { content: '\3c'; } /* '<' */ +.icon-spin5:before { content: '\3d'; } /* '=' */ +.icon-right-open:before { content: '\3e'; } /* '>' */ +.icon-history:before { content: '\3f'; } /* '?' */ +.icon-circle-notch:before { content: '\40'; } /* '@' */ +.icon-marquee:before { content: '\41'; } /* 'A' */ +.icon-eye:before { content: '\42'; } /* 'B' */ +.icon-users:before { content: '\43'; } /* 'C' */ +.icon-shower:before { content: '\44'; } /* 'D' */ +.icon-swimming:before { content: '\45'; } /* 'E' */ +.icon-chart-area:before { content: '\46'; } /* 'F' */ +.icon-chart-pie:before { content: '\47'; } /* 'G' */ +.icon-chart-line:before { content: '\48'; } /* 'H' */ +.icon-bicycle:before { content: '\49'; } /* 'I' */ +.icon-bus:before { content: '\4a'; } /* 'J' */ +.icon-at:before { content: '\4b'; } /* 'K' */ +.icon-infinity:before { content: '\4c'; } /* 'L' */ +.icon-at-1:before { content: '\4d'; } /* 'M' */ +.icon-child:before { content: '\4e'; } /* 'N' */ +.icon-plus-squared-alt:before { content: '\4f'; } /* 'O' */ +.icon-unlink:before { content: '\50'; } /* 'P' */ +.icon-share-squared:before { content: '\51'; } /* 'Q' */ +.icon-tree:before { content: '\52'; } /* 'R' */ +.icon-database:before { content: '\53'; } /* 'S' */ +.icon-lifebuoy:before { content: '\54'; } /* 'T' */ +.icon-cubes:before { content: '\55'; } /* 'U' */ +.icon-cube:before { content: '\56'; } /* 'V' */ +.icon-bell-off:before { content: '\57'; } /* 'W' */ +.icon-trash-1:before { content: '\58'; } /* 'X' */ +.icon-toggle-off:before { content: '\59'; } /* 'Y' */ +.icon-toggle-on:before { content: '\5a'; } /* 'Z' */ +.icon-birthday:before { content: '\5b'; } /* '[' */ +.icon-github-circled:before { content: '\5c'; } /* '\' */ +.icon-google:before { content: '\5d'; } /* ']' */ +.icon-pied-piper-squared:before { content: '\5e'; } /* '^' */ +.icon-slideshare:before { content: '\5f'; } /* '_' */ +.icon-wordpress:before { content: '\60'; } /* '`' */ +.icon-digg:before { content: '\61'; } /* 'a' */ +.icon-delicious:before { content: '\62'; } /* 'b' */ +.icon-hash:before { content: '\63'; } /* 'c' */ +.icon-hash-1:before { content: '\64'; } /* 'd' */ +.icon-clock-1:before { content: '\65'; } /* 'e' */ +.icon-asterisk-1:before { content: '\66'; } /* 'f' */ +.icon-cancel-circled:before { content: '\67'; } /* 'g' */ +.icon-bell-off-empty:before { content: '\68'; } /* 'h' */ +.icon-meteor:before { content: '\69'; } /* 'i' */ +.icon-git-squared:before { content: '\6a'; } /* 'j' */ +.icon-angellist:before { content: '\6b'; } /* 'k' */ +.icon-behance:before { content: '\6c'; } /* 'l' */ +.icon-gitlab:before { content: '\6d'; } /* 'm' */ +.icon-rocketchat:before { content: '\6e'; } /* 'n' */ +.icon-spin4:before { content: '\6f'; } /* 'o' */ +.icon-sliders:before { content: '\70'; } /* 'p' */ +.icon-spin6:before { content: '\71'; } /* 'q' */ +.icon-firefox:before { content: '\72'; } /* 'r' */ +.icon-angle-double-left:before { content: '\ab'; } /* '«' */ +.icon-angle-double-right:before { content: '\bb'; } /* '»' */ +.icon-angle-left:before { content: '\2039'; } /* '‹' */ +.icon-angle-right:before { content: '\203a'; } /* '›' */ +.icon-left-open-small:before { content: '\276e'; } /* 'â®' */ +.icon-right-open-small:before { content: '\276f'; } /* 'â¯' */ +.icon-camera:before { content: '\e800'; } /* 'î €' */ +.icon-videocam:before { content: '\e801'; } /* 'î ' */ +.icon-heart:before { content: '\e802'; } /* 'î ‚' */ +.icon-star:before { content: '\e803'; } /* 'î ƒ' */ +.icon-star-empty:before { content: '\e804'; } /* 'î „' */ +.icon-star-half:before { content: '\e805'; } /* 'î …' */ +.icon-star-half-alt:before { content: '\e806'; } /* 'î †' */ +.icon-thumbs-up-alt:before { content: '\e807'; } /* 'î ‡' */ +.icon-thumbs-down-alt:before { content: '\e808'; } /* 'î ˆ' */ +.icon-print:before { content: '\e809'; } /* 'î ‰' */ +.icon-user:before { content: '\e80a'; } /* 'î Š' */ +.icon-ok:before { content: '\e80b'; } /* 'î ‹' */ +.icon-bell-alt:before { content: '\e80c'; } /* 'î Œ' */ +.icon-bell:before { content: '\e80d'; } /* 'î ' */ +.icon-direction:before { content: '\e80e'; } /* 'î Ž' */ +.icon-home:before { content: '\e80f'; } /* 'î ' */ +.icon-trash:before { content: '\e810'; } /* 'î ' */ +.icon-menu:before { content: '\e811'; } /* 'î ‘' */ +.icon-attach:before { content: '\e812'; } /* 'î ’' */ +.icon-th-list:before { content: '\e813'; } /* 'î “' */ +.icon-th:before { content: '\e814'; } /* 'î ”' */ +.icon-th-large:before { content: '\e815'; } /* 'î •' */ +.icon-ok-circled:before { content: '\e816'; } /* 'î –' */ +.icon-cancel:before { content: '\e818'; } /* 'î ˜' */ +.icon-attention:before { content: '\e819'; } /* 'î ™' */ +.icon-attention-circled:before { content: '\e81a'; } /* 'î š' */ +.icon-location:before { content: '\e81b'; } /* 'î ›' */ +.icon-pencil:before { content: '\e81c'; } /* 'î œ' */ +.icon-glass:before { content: '\e81d'; } /* 'î ' */ +.icon-music:before { content: '\e81e'; } /* 'î ž' */ +.icon-search:before { content: '\e81f'; } /* 'î Ÿ' */ +.icon-mail:before { content: '\e820'; } /* 'î ' */ +.icon-mail-alt:before { content: '\e821'; } /* 'î ¡' */ +.icon-heart-empty:before { content: '\e822'; } /* 'î ¢' */ +.icon-male:before { content: '\e824'; } /* 'î ¤' */ +.icon-female:before { content: '\e825'; } /* 'î ¥' */ +.icon-video:before { content: '\e826'; } /* 'î ¦' */ +.icon-picture:before { content: '\e827'; } /* 'î §' */ +.icon-ok-squared:before { content: '\e82a'; } /* 'î ª' */ +.icon-plus:before { content: '\e82c'; } /* 'î ¬' */ +.icon-plus-circled:before { content: '\e82d'; } /* 'î ' */ +.icon-plus-squared:before { content: '\e82e'; } /* 'î ®' */ +.icon-religious-christian:before { content: '\e82f'; } /* 'î ¯' */ +.icon-water:before { content: '\e830'; } /* 'î °' */ +.icon-toilet:before { content: '\e831'; } /* 'î ±' */ +.icon-droplet:before { content: '\e832'; } /* 'î ²' */ +.icon-minus:before { content: '\e833'; } /* 'î ³' */ +.icon-minus-circled:before { content: '\e834'; } /* 'î ´' */ +.icon-minus-squared:before { content: '\e835'; } /* 'î µ' */ +.icon-airport:before { content: '\e836'; } /* 'î ¶' */ +.icon-help:before { content: '\e837'; } /* 'î ·' */ +.icon-help-circled:before { content: '\e838'; } /* 'î ¸' */ +.icon-info-circled:before { content: '\e839'; } /* 'î ¹' */ +.icon-info:before { content: '\e83a'; } /* 'î º' */ +.icon-link:before { content: '\e83b'; } /* 'î »' */ +.icon-link-ext:before { content: '\e83d'; } /* 'î ½' */ +.icon-link-ext-alt:before { content: '\e83e'; } /* 'î ¾' */ +.icon-thumbs-down:before { content: '\e83f'; } /* 'î ¿' */ +.icon-thumbs-up:before { content: '\e840'; } /* 'î¡€' */ +.icon-flag-checkered:before { content: '\e841'; } /* 'î¡' */ +.icon-flag-empty:before { content: '\e842'; } /* 'î¡‚' */ +.icon-flag:before { content: '\e843'; } /* '' */ +.icon-bookmark-empty:before { content: '\e844'; } /* 'î¡„' */ +.icon-bookmark:before { content: '\e845'; } /* 'î¡…' */ +.icon-tags:before { content: '\e846'; } /* '' */ +.icon-tag:before { content: '\e847'; } /* '' */ +.icon-eye-off:before { content: '\e848'; } /* '' */ +.icon-minus-squared-alt:before { content: '\e84a'; } /* '' */ +.icon-pin:before { content: '\e84b'; } /* 'î¡‹' */ +.icon-lock-open-alt:before { content: '\e84c'; } /* '' */ +.icon-lock-open:before { content: '\e84d'; } /* 'î¡' */ +.icon-lock:before { content: '\e84e'; } /* '' */ +.icon-download:before { content: '\e84f'; } /* 'î¡' */ +.icon-upload:before { content: '\e850'; } /* 'î¡' */ +.icon-download-cloud:before { content: '\e851'; } /* 'î¡‘' */ +.icon-upload-cloud:before { content: '\e852'; } /* 'î¡’' */ +.icon-reply:before { content: '\e853'; } /* 'î¡“' */ +.icon-edit:before { content: '\e854'; } /* 'î¡”' */ +.icon-compass:before { content: '\e855'; } /* 'î¡•' */ +.icon-retweet:before { content: '\e856'; } /* 'î¡–' */ +.icon-keyboard:before { content: '\e857'; } /* 'î¡—' */ +.icon-gamepad:before { content: '\e858'; } /* '' */ +.icon-comment:before { content: '\e859'; } /* 'î¡™' */ +.icon-chat:before { content: '\e85a'; } /* '' */ +.icon-comment-empty:before { content: '\e85b'; } /* 'î¡›' */ +.icon-chat-empty:before { content: '\e85c'; } /* '' */ +.icon-reply-all:before { content: '\e85d'; } /* 'î¡' */ +.icon-forward:before { content: '\e85e'; } /* '' */ +.icon-quote-left:before { content: '\e85f'; } /* '' */ +.icon-quote-right:before { content: '\e860'; } /* 'î¡ ' */ +.icon-code:before { content: '\e861'; } /* 'î¡¡' */ +.icon-export:before { content: '\e862'; } /* 'î¡¢' */ +.icon-export-alt:before { content: '\e863'; } /* 'î¡£' */ +.icon-pencil-squared:before { content: '\e864'; } /* '' */ +.icon-attention-alt:before { content: '\e865'; } /* 'î¡¥' */ +.icon-doc:before { content: '\e866'; } /* '' */ +.icon-docs:before { content: '\e867'; } /* 'î¡§' */ +.icon-doc-text:before { content: '\e868'; } /* '' */ +.icon-doc-inv:before { content: '\e869'; } /* 'î¡©' */ +.icon-doc-text-inv:before { content: '\e86a'; } /* '' */ +.icon-folder-open:before { content: '\e86b'; } /* 'î¡«' */ +.icon-folder-empty:before { content: '\e86c'; } /* '' */ +.icon-folder:before { content: '\e86d'; } /* 'î¡' */ +.icon-folder-open-empty:before { content: '\e86e'; } /* 'î¡®' */ +.icon-box:before { content: '\e86f'; } /* '' */ +.icon-rss:before { content: '\e870'; } /* 'î¡°' */ +.icon-rss-squared:before { content: '\e871'; } /* '' */ +.icon-phone:before { content: '\e872'; } /* '' */ +.icon-phone-squared:before { content: '\e873'; } /* '' */ +.icon-blank:before { content: '\e874'; } /* 'î¡´' */ +.icon-youtube-play:before { content: '\e875'; } /* '' */ +.icon-youtube-squared:before { content: '\e876'; } /* 'î¡¶' */ +.icon-youtube:before { content: '\e877'; } /* 'î¡·' */ +.icon-key-1:before { content: '\e878'; } /* '' */ +.icon-foxter:before { content: '\e879'; } /* '' */ +.icon-windows:before { content: '\e87a'; } /* '' */ +.icon-kettle:before { content: '\e87b'; } /* 'î¡»' */ +.icon-graduation-cap:before { content: '\e87c'; } /* '' */ +.icon-vimeo-squared:before { content: '\e87d'; } /* '' */ +.icon-twitter:before { content: '\e87e'; } /* '' */ +.icon-twitter-squared:before { content: '\e87f'; } /* 'î¡¿' */ +.icon-tumblr-squared:before { content: '\e880'; } /* '' */ +.icon-tumblr:before { content: '\e881'; } /* 'î¢' */ +.icon-trello:before { content: '\e882'; } /* '' */ +.icon-stackoverflow:before { content: '\e883'; } /* '' */ +.icon-lemon:before { content: '\e884'; } /* '' */ +.icon-parking:before { content: '\e885'; } /* '' */ +.icon-gittip:before { content: '\e886'; } /* '' */ +.icon-gplus:before { content: '\e887'; } /* '' */ +.icon-html5:before { content: '\e888'; } /* '' */ +.icon-gplus-squared:before { content: '\e889'; } /* '' */ +.icon-instagramm:before { content: '\e88a'; } /* '' */ +.icon-linkedin-squared:before { content: '\e88b'; } /* '' */ +.icon-fuel:before { content: '\e88c'; } /* '' */ +.icon-linkedin:before { content: '\e88d'; } /* 'î¢' */ +.icon-money-1:before { content: '\e88e'; } /* '' */ +.icon-pagelines:before { content: '\e88f'; } /* 'î¢' */ +.icon-pinterest-circled:before { content: '\e890'; } /* 'î¢' */ +.icon-pinterest-squared:before { content: '\e891'; } /* '' */ +.icon-skype:before { content: '\e892'; } /* '' */ +.icon-stackexchange:before { content: '\e893'; } /* '' */ +.icon-renren:before { content: '\e894'; } /* '' */ +.icon-bank:before { content: '\e895'; } /* '' */ +.icon-school:before { content: '\e896'; } /* '' */ +.icon-foursquare:before { content: '\e897'; } /* '' */ +.icon-flickr:before { content: '\e898'; } /* '' */ +.icon-facebook-squared:before { content: '\e899'; } /* '' */ +.icon-facebook:before { content: '\e89a'; } /* '' */ +.icon-dropbox:before { content: '\e89b'; } /* '' */ +.icon-dribbble:before { content: '\e89c'; } /* '' */ +.icon-css3:before { content: '\e89d'; } /* 'î¢' */ +.icon-bitbucket-squared:before { content: '\e89e'; } /* '' */ +.icon-bitbucket:before { content: '\e89f'; } /* '' */ +.icon-apple:before { content: '\e8a0'; } /* 'î¢ ' */ +.icon-android:before { content: '\e8a1'; } /* '' */ +.icon-adn:before { content: '\e8a2'; } /* '' */ +.icon-wheelchair:before { content: '\e8a3'; } /* '' */ +.icon-bullseye:before { content: '\e8a4'; } /* '' */ +.icon-user-md:before { content: '\e8a5'; } /* '' */ +.icon-stethoscope:before { content: '\e8a6'; } /* '' */ +.icon-ambulance:before { content: '\e8a7'; } /* '' */ +.icon-medkit:before { content: '\e8a8'; } /* '' */ +.icon-hospital:before { content: '\e8a9'; } /* '' */ +.icon-h-sigh:before { content: '\e8aa'; } /* '' */ +.icon-building:before { content: '\e8ab'; } /* '' */ +.icon-smile:before { content: '\e8ac'; } /* '' */ +.icon-frown:before { content: '\e8ad'; } /* 'î¢' */ +.icon-meh:before { content: '\e8ae'; } /* '' */ +.icon-anchor:before { content: '\e8af'; } /* '' */ +.icon-terminal:before { content: '\e8b0'; } /* '' */ +.icon-eraser:before { content: '\e8b1'; } /* '' */ +.icon-puzzle:before { content: '\e8b2'; } /* '' */ +.icon-shield:before { content: '\e8b3'; } /* '' */ +.icon-extinguisher:before { content: '\e8b4'; } /* '' */ +.icon-beer:before { content: '\e8b5'; } /* '' */ +.icon-food:before { content: '\e8b6'; } /* '' */ +.icon-coffee:before { content: '\e8b7'; } /* '' */ +.icon-spinner:before { content: '\e8b8'; } /* '' */ +.icon-sitemap:before { content: '\e8b9'; } /* '' */ +.icon-gauge:before { content: '\e8ba'; } /* '' */ +.icon-hammer:before { content: '\e8bb'; } /* '' */ +.icon-sort-number-down:before { content: '\e8bc'; } /* '' */ +.icon-sort-name-down:before { content: '\e8bd'; } /* '' */ +.icon-sort-number-up:before { content: '\e8be'; } /* '' */ +.icon-sort-name-up:before { content: '\e8bf'; } /* '' */ +.icon-sort-alt-down:before { content: '\e8c0'; } /* '' */ +.icon-sort-alt-up:before { content: '\e8c1'; } /* 'î£' */ +.icon-sort-up:before { content: '\e8c2'; } /* '' */ +.icon-sort-down:before { content: '\e8c3'; } /* '' */ +.icon-sort:before { content: '\e8c4'; } /* '' */ +.icon-certificate:before { content: '\e8c5'; } /* '' */ +.icon-tasks:before { content: '\e8c6'; } /* '' */ +.icon-filter:before { content: '\e8c7'; } /* '' */ +.icon-beaker:before { content: '\e8c8'; } /* '' */ +.icon-magic:before { content: '\e8c9'; } /* '' */ +.icon-truck:before { content: '\e8ca'; } /* '' */ +.icon-money:before { content: '\e8cb'; } /* '' */ +.icon-euro:before { content: '\e8cc'; } /* '' */ +.icon-pound:before { content: '\e8cd'; } /* 'î£' */ +.icon-dollar:before { content: '\e8ce'; } /* '' */ +.icon-bug:before { content: '\e8cf'; } /* 'î£' */ +.icon-rocket:before { content: '\e8d0'; } /* 'î£' */ +.icon-fork:before { content: '\e8d1'; } /* '' */ +.icon-key:before { content: '\e8d2'; } /* '' */ +.icon-hdd:before { content: '\e8d3'; } /* '' */ +.icon-megaphone:before { content: '\e8d4'; } /* '' */ +.icon-floppy:before { content: '\e8d5'; } /* '' */ +.icon-credit-card:before { content: '\e8d6'; } /* '' */ +.icon-ticket:before { content: '\e8d7'; } /* '' */ +.icon-chart-bar:before { content: '\e8d8'; } /* '' */ +.icon-magnet:before { content: '\e8d9'; } /* '' */ +.icon-fire:before { content: '\e8da'; } /* '' */ +.icon-gift:before { content: '\e8db'; } /* '' */ +.icon-asterisk:before { content: '\e8dc'; } /* '' */ +.icon-dot-circled:before { content: '\e8dd'; } /* 'î£' */ +.icon-circle-empty:before { content: '\e8de'; } /* '' */ +.icon-paste:before { content: '\e8df'; } /* '' */ +.icon-briefcase:before { content: '\e8e0'; } /* 'î£ ' */ +.icon-suitcase:before { content: '\e8e1'; } /* '' */ +.icon-ellipsis:before { content: '\e8e2'; } /* '' */ +.icon-ellipsis-vert:before { content: '\e8e3'; } /* '' */ +.icon-off:before { content: '\e8e4'; } /* '' */ +.icon-road:before { content: '\e8e5'; } /* '' */ +.icon-qrcode:before { content: '\e8e6'; } /* '' */ +.icon-barcode:before { content: '\e8e7'; } /* '' */ +.icon-list-alt:before { content: '\e8e8'; } /* '' */ +.icon-book:before { content: '\e8e9'; } /* '' */ +.icon-ajust:before { content: '\e8ea'; } /* '' */ +.icon-tint:before { content: '\e8eb'; } /* '' */ +.icon-check:before { content: '\e8ec'; } /* '' */ +.icon-check-empty:before { content: '\e8ed'; } /* 'î£' */ +.icon-circle:before { content: '\e8ee'; } /* '' */ +.icon-cog:before { content: '\e8ef'; } /* '' */ +.icon-cog-alt:before { content: '\e8f0'; } /* '' */ +.icon-wrench:before { content: '\e8f1'; } /* '' */ +.icon-basket:before { content: '\e8f2'; } /* '' */ +.icon-calendar-empty:before { content: '\e8f3'; } /* '' */ +.icon-calendar:before { content: '\e8f4'; } /* '' */ +.icon-login:before { content: '\e8f5'; } /* '' */ +.icon-logout:before { content: '\e8f6'; } /* '' */ +.icon-mic:before { content: '\e8f7'; } /* '' */ +.icon-mute:before { content: '\e8f8'; } /* '' */ +.icon-volume-off:before { content: '\e8f9'; } /* '' */ +.icon-volume-down:before { content: '\e8fa'; } /* '' */ +.icon-volume-up:before { content: '\e8fb'; } /* '' */ +.icon-headphones:before { content: '\e8fc'; } /* '' */ +.icon-clock:before { content: '\e8fd'; } /* '' */ +.icon-up-dir:before { content: '\e8fe'; } /* '' */ +.icon-down-dir:before { content: '\e8ff'; } /* '' */ +.icon-right-circled2:before { content: '\e900'; } /* '' */ +.icon-left-circled2:before { content: '\e901'; } /* 'î¤' */ +.icon-up-circled2:before { content: '\e902'; } /* '' */ +.icon-down-circled2:before { content: '\e903'; } /* '' */ +.icon-zoom-out:before { content: '\e904'; } /* '' */ +.icon-zoom-in:before { content: '\e905'; } /* '' */ +.icon-move:before { content: '\e906'; } /* '' */ +.icon-resize-horizontal:before { content: '\e907'; } /* '' */ +.icon-resize-vertical:before { content: '\e908'; } /* '' */ +.icon-resize-small:before { content: '\e909'; } /* '' */ +.icon-resize-full-alt:before { content: '\e90a'; } /* '' */ +.icon-resize-full:before { content: '\e90b'; } /* '' */ +.icon-block:before { content: '\e90c'; } /* '' */ +.icon-lightbulb:before { content: '\e90d'; } /* 'î¤' */ +.icon-left-dir:before { content: '\e90e'; } /* '' */ +.icon-right-dir:before { content: '\e90f'; } /* 'î¤' */ +.icon-down-open:before { content: '\e910'; } /* 'î¤' */ +.icon-up-open:before { content: '\e913'; } /* '' */ +.icon-angle-up:before { content: '\e916'; } /* '' */ +.icon-angle-down:before { content: '\e917'; } /* '' */ +.icon-angle-circled-left:before { content: '\e918'; } /* '' */ +.icon-angle-circled-right:before { content: '\e919'; } /* '' */ +.icon-angle-circled-down:before { content: '\e91a'; } /* '' */ +.icon-angle-circled-up:before { content: '\e91d'; } /* 'î¤' */ +.icon-scissors:before { content: '\e91e'; } /* '' */ +.icon-align-left:before { content: '\e91f'; } /* '' */ +.icon-mobile:before { content: '\e920'; } /* 'î¤ ' */ +.icon-play-circled2:before { content: '\e921'; } /* '' */ +.icon-right-circled:before { content: '\e922'; } /* '' */ +.icon-left-circled:before { content: '\e923'; } /* '' */ +.icon-play-circled:before { content: '\e924'; } /* '' */ +.icon-tablet:before { content: '\e925'; } /* '' */ +.icon-text-width:before { content: '\e926'; } /* '' */ +.icon-crop:before { content: '\e927'; } /* '' */ +.icon-columns:before { content: '\e928'; } /* '' */ +.icon-text-height:before { content: '\e929'; } /* '' */ +.icon-laptop:before { content: '\e92a'; } /* '' */ +.icon-play:before { content: '\e92b'; } /* '' */ +.icon-down-hand:before { content: '\e92c'; } /* '' */ +.icon-up-hand:before { content: '\e92d'; } /* 'î¤' */ +.icon-collapse-left:before { content: '\e92e'; } /* '' */ +.icon-desktop:before { content: '\e92f'; } /* '' */ +.icon-italic:before { content: '\e930'; } /* '' */ +.icon-table:before { content: '\e931'; } /* '' */ +.icon-subscript:before { content: '\e932'; } /* '' */ +.icon-bold:before { content: '\e933'; } /* '' */ +.icon-award:before { content: '\e934'; } /* '' */ +.icon-expand-right:before { content: '\e935'; } /* '' */ +.icon-left-hand:before { content: '\e936'; } /* '' */ +.icon-right-hand:before { content: '\e937'; } /* '' */ +.icon-signal:before { content: '\e938'; } /* '' */ +.icon-collapse:before { content: '\e939'; } /* '' */ +.icon-font:before { content: '\e93a'; } /* '' */ +.icon-superscript:before { content: '\e93b'; } /* '' */ +.icon-align-center:before { content: '\e93c'; } /* '' */ +.icon-align-right:before { content: '\e93d'; } /* '' */ +.icon-align-justify:before { content: '\e93e'; } /* '' */ +.icon-indent-left:before { content: '\e93f'; } /* '' */ +.icon-indent-right:before { content: '\e940'; } /* '' */ +.icon-list:before { content: '\e941'; } /* 'î¥' */ +.icon-list-bullet:before { content: '\e942'; } /* '' */ +.icon-list-numbered:before { content: '\e943'; } /* '' */ +.icon-strike:before { content: '\e944'; } /* '' */ +.icon-underline:before { content: '\e945'; } /* '' */ +.icon-leaf:before { content: '\e946'; } /* '' */ +.icon-fighter-jet:before { content: '\e947'; } /* '' */ +.icon-flight:before { content: '\e948'; } /* '' */ +.icon-umbrella:before { content: '\e949'; } /* '' */ +.icon-moon:before { content: '\e94a'; } /* '' */ +.icon-flash:before { content: '\e94b'; } /* '' */ +.icon-cloud:before { content: '\e94c'; } /* '' */ +.icon-sun:before { content: '\e94d'; } /* 'î¥' */ +.icon-globe:before { content: '\e94e'; } /* '' */ +.icon-inbox:before { content: '\e94f'; } /* 'î¥' */ +.icon-stop:before { content: '\e950'; } /* 'î¥' */ +.icon-pause:before { content: '\e951'; } /* '' */ +.icon-to-end:before { content: '\e952'; } /* '' */ +.icon-to-end-alt:before { content: '\e953'; } /* '' */ +.icon-to-start:before { content: '\e954'; } /* '' */ +.icon-fast-fw:before { content: '\e955'; } /* '' */ +.icon-to-start-alt:before { content: '\e956'; } /* '' */ +.icon-fast-bw:before { content: '\e957'; } /* '' */ +.icon-eject:before { content: '\e958'; } /* '' */ +.icon-target:before { content: '\e959'; } /* '' */ +.icon-expand:before { content: '\e95a'; } /* '' */ +.icon-exchange:before { content: '\e95b'; } /* '' */ +.icon-shuffle:before { content: '\e95c'; } /* '' */ +.icon-level-down:before { content: '\e95d'; } /* 'î¥' */ +.icon-arrows-cw:before { content: '\e95e'; } /* '' */ +.icon-level-up:before { content: '\e95f'; } /* '' */ +.icon-ccw:before { content: '\e960'; } /* 'î¥ ' */ +.icon-cw:before { content: '\e961'; } /* '' */ +.icon-down-circled:before { content: '\e962'; } /* '' */ +.icon-up-circled:before { content: '\e963'; } /* '' */ +.icon-angle-double-up:before { content: '\e964'; } /* '' */ +.icon-angle-double-down:before { content: '\e965'; } /* '' */ +.icon-down:before { content: '\e966'; } /* '' */ +.icon-left:before { content: '\e967'; } /* '' */ +.icon-right:before { content: '\e968'; } /* '' */ +.icon-up:before { content: '\e969'; } /* '' */ +.icon-down-big:before { content: '\e96a'; } /* '' */ +.icon-left-big:before { content: '\e96b'; } /* '' */ +.icon-right-big:before { content: '\e96c'; } /* '' */ +.icon-up-big:before { content: '\e96d'; } /* 'î¥' */ +.icon-bedroom:before { content: '\e96e'; } /* '' */ +.icon-fast-food:before { content: '\e96f'; } /* '' */ +.icon-police:before { content: '\e971'; } /* '' */ +.icon-elevator:before { content: '\e972'; } /* '' */ +.icon-food-1:before { content: '\e973'; } /* '' */ +.icon-pan:before { content: '\e974'; } /* '' */ +.icon-tap:before { content: '\e975'; } /* '' */ +.icon-gym:before { content: '\e976'; } /* '' */ +.icon-sports:before { content: '\e977'; } /* '' */ +.icon-football:before { content: '\e978'; } /* '' */ +.icon-tennis:before { content: '\e979'; } /* '' */ +.icon-fax:before { content: '\e97a'; } /* '' */ +.icon-taxi:before { content: '\e97b'; } /* '' */ +.icon-paragraph:before { content: '\e97c'; } /* '' */ diff --git a/packages/rocketchat-livechat/app/client/stylesheets/main.less b/packages/rocketchat-livechat/app/client/stylesheets/main.less index 4209b52194d38aede2e2ce2ad1ef25626ab12f39..d1b63f52a765b507a82a6f750e40f2612e4d0fef 100644 --- a/packages/rocketchat-livechat/app/client/stylesheets/main.less +++ b/packages/rocketchat-livechat/app/client/stylesheets/main.less @@ -49,7 +49,7 @@ input:focus { height: 100%; .title { - flex: 1 1 @header-min-height; + flex: 1 0 @header-min-height; line-height: @header-min-height; @@ -62,8 +62,13 @@ input:focus { margin: 0; padding: 0 5px; font-size: 9pt; - display: table-cell; - vertical-align: middle; + display: inline-block; + } + + .toolbar { + display: inline-block; + float: right; + padding-right: 5px; } } .messages { @@ -286,7 +291,7 @@ input:focus { } } .footer { - flex: 1 1 @footer-min-height; + flex: 1 0 @footer-min-height; z-index: 10; @@ -320,62 +325,30 @@ input:focus { } } -.livechat-registration { - position: fixed; - top: 0; - bottom: 0; - .title { - border-top-right-radius: 5px; - border-top-left-radius: 5px; - color: #FFF; - position: fixed; - top: 0; - width: 100%; - height: @header-min-height; - display: table; - z-index: 10; - cursor: pointer; - h1 { - margin: 0; - padding: 0 5px; - font-size: 9pt; - display: table-cell; - vertical-align: middle; - } - } - .livechat-form { - display: block; - background-color: #FFF; - top: @header-min-height; - bottom: @footer-min-height; - border-left: 1px solid #E7E7E7; - border-right: 1px solid #E7E7E7; - position: fixed; - width: 100%; - .wrapper { - height: 100%; - overflow-y: auto; - padding-bottom: 6px; +.livechat-form { + flex: 1 1 100%; + display: block; + background-color: #FFF; + border-left: 1px solid #E7E7E7; + border-right: 1px solid #E7E7E7; - input, button { - display: block; - padding: 5px; - margin: 5px; - } - } - .error { - bottom: 50px; - position: fixed; - width: 100%; - background-color: #F7D799; - padding: 5px; + input, button { + display: block; + padding: 5px; + margin: 5px; + } + .error { + display: none; + // width: 100%; + background-color: #F7D799; + padding: 5px; - .transition(transform 0.3s ease-out); - .transform(translateY(200%)); + // .transition(transform 0.3s ease-out); + // .transform(translateY(-100%)); - &.show { - .transform(translateY(8px)); - } + &.show { + display: block; + // .transform(translateY(0px)); } } } diff --git a/packages/rocketchat-livechat/app/client/views/messages.html b/packages/rocketchat-livechat/app/client/views/messages.html new file mode 100644 index 0000000000000000000000000000000000000000..8bfbfd49b62fc84b8eeddac63fc1065ea9621689 --- /dev/null +++ b/packages/rocketchat-livechat/app/client/views/messages.html @@ -0,0 +1,23 @@ +<template name="messages"> + <div class="messages"> + <div class="wrapper"> + <ul> + {{#each messages}} + {{#nrr nrrargs 'message' .}}{{/nrr}} + {{/each}} + </ul> + </div> + <div class="new-message not"> + <span>New messages</span> + </div> + + <div class="error"> + <span></span> + </div> + </div> + <div class="footer"> + <div class="input-wrapper"> + <textarea class="input-message" placeholder="Type your message"></textarea> + </div> + </div> +</template> diff --git a/packages/rocketchat-livechat/app/client/views/messages.js b/packages/rocketchat-livechat/app/client/views/messages.js new file mode 100644 index 0000000000000000000000000000000000000000..e6391df23038311a67fb1bd339e13976d99f539f --- /dev/null +++ b/packages/rocketchat-livechat/app/client/views/messages.js @@ -0,0 +1,98 @@ +Template.messages.helpers({ + messages: function() { + return ChatMessage.find({ + rid: visitor.getRoom(), + t: { + '$ne': 't' + } + }, { + sort: { + ts: 1 + } + }); + }, +}); + +Template.messages.events({ + 'keyup .input-message': function(event) { + // Inital height is 28. If the scrollHeight is greater than that( we have more text than area ), + // increase the size of the textarea. The max-height is set at 200 + // even if the scrollHeight become bigger than that it should never exceed that. + // Account for no text in the textarea when increasing the height. + // If there is no text, reset the height. + var inputScrollHeight; + Template.instance().chatMessages.keyup(visitor.getRoom(), event, Template.instance()); + inputScrollHeight = $(event.currentTarget).prop('scrollHeight'); + if (inputScrollHeight > 28) { + return $(event.currentTarget).height($(event.currentTarget).val() === '' ? '15px' : (inputScrollHeight >= 200 ? inputScrollHeight - 50 : inputScrollHeight - 20)); + } + }, + 'keydown .input-message': function(event) { + return Template.instance().chatMessages.keydown(visitor.getRoom(), event, Template.instance()); + }, + 'click .new-message': function() { + Template.instance().atBottom = true; + return Template.instance().find('.input-message').focus(); + }, + 'click .error': function(event) { + return $(event.currentTarget).removeClass('show'); + }, +}); + +Template.messages.onCreated(function() { + var self; + self = this; + self.autorun(function() { + self.subscribe('livechat:visitorRoom', visitor.getToken(), function() { + var room; + room = ChatRoom.findOne(); + if (room != null) { + visitor.setRoom(room._id); + RoomHistoryManager.getMoreIfIsEmpty(room._id); + } + }); + }); + self.subscribe('settings', ['Livechat_title', 'Livechat_title_color']); + self.atBottom = true; +}); + +Template.messages.onRendered(function() { + this.chatMessages = new ChatMessages; + this.chatMessages.init(this.firstNode); +}); + +Template.messages.onRendered(function() { + var messages, newMessage, onscroll, template; + messages = this.find('.messages'); + newMessage = this.find(".new-message"); + template = this; + if (messages) { + onscroll = _.throttle(function() { + template.atBottom = messages.scrollTop >= messages.scrollHeight - messages.clientHeight; + }, 200); + Meteor.setInterval(function() { + if (template.atBottom) { + messages.scrollTop = messages.scrollHeight - messages.clientHeight; + newMessage.className = "new-message not"; + } + }, 100); + messages.addEventListener('touchstart', function() { + template.atBottom = false; + }); + messages.addEventListener('touchend', function() { + onscroll(); + }); + messages.addEventListener('scroll', function() { + template.atBottom = false; + onscroll(); + }); + messages.addEventListener('mousewheel', function() { + template.atBottom = false; + onscroll(); + }); + messages.addEventListener('wheel', function() { + template.atBottom = false; + onscroll(); + }); + } +}); diff --git a/packages/rocketchat-livechat/app/client/views/register.coffee b/packages/rocketchat-livechat/app/client/views/register.coffee index d40e057b3b9e2b44cb6eaf127ce85e0dc5d9527b..f815eab9013ff4e144e7f08f1cf275a9b16dd49a 100644 --- a/packages/rocketchat-livechat/app/client/views/register.coffee +++ b/packages/rocketchat-livechat/app/client/views/register.coffee @@ -21,21 +21,30 @@ Template.register.events $email = instance.$('input[name=email]') unless $name.val().trim() and $email.val().trim() - instance.error.set(TAPi18n.__('Please_fill_name_and_email')) + return instance.showError TAPi18n.__('Please_fill_name_and_email') else Meteor.call 'registerGuest', visitor.getToken(), $name.val(), $email.val(), (error, result) -> if error? - return instance.error.set error.reason + return instance.showError error.reason Meteor.loginWithPassword result.user, result.pass, (error) -> if error - return instance.error.set error.reason - - BlazeLayout.render 'main', {center: 'room'} + return instance.showError error.reason 'click .error': (e, instance) -> - instance.error.set() + instance.hideError() Template.register.onCreated -> @subscribe 'settings', ['Livechat_title', 'Livechat_title_color'] @error = new ReactiveVar + + @showError = (msg) => + $('.error').addClass('show') + @error.set msg + return + + @hideError = => + $('.error').removeClass('show') + @error.set() + return + diff --git a/packages/rocketchat-livechat/app/client/views/register.html b/packages/rocketchat-livechat/app/client/views/register.html index 8a8249834e9f97435d9736a8ab991d706257e417..39ef026bf5e35097ec69459fd972aff8a798c2c5 100644 --- a/packages/rocketchat-livechat/app/client/views/register.html +++ b/packages/rocketchat-livechat/app/client/views/register.html @@ -1,22 +1,15 @@ <template name="register"> - <div class="livechat-registration"> - <div class="title" style="background-color:{{color}}"> - <h1>{{title}}</h1> + <form id="livechat-registration" class="livechat-form"> + <div class="error"> + <span>{{error}}</span> </div> - <form id="livechat-registration" class="livechat-form"> - <div class="wrapper"> - <label> - {{{welcomeMessage}}} - </label> - <input type="text" name="name" id="guestName" placeholder="{{_ "Name"}}"> - <input type="email" name="email" id="guestEmail" placeholder="{{_ "E-mail"}}"> - <button type="submit" id="btnEntrar" class="-btn"> {{_ "Start_Chat"}} </button> - </div> - {{#if error}} - <div class="error show"> - <span>{{error}}</span> - </div> - {{/if}} - </form> - </div> + + <label> + {{{welcomeMessage}}} + </label> + <input type="text" name="name" id="guestName" placeholder="{{_ "Name"}}"> + <input type="email" name="email" id="guestEmail" placeholder="{{_ "E-mail"}}"> + <button type="submit" id="btnEntrar" class="-btn"> {{_ "Start_Chat"}} </button> + + </form> </template> diff --git a/packages/rocketchat-livechat/app/client/views/room.coffee b/packages/rocketchat-livechat/app/client/views/room.coffee deleted file mode 100644 index 999c436480880f201b806d62af33806917234196..0000000000000000000000000000000000000000 --- a/packages/rocketchat-livechat/app/client/views/room.coffee +++ /dev/null @@ -1,99 +0,0 @@ -Template.room.helpers - messages: -> - return ChatMessage.find { rid: visitor.getRoom(), t: { '$ne': 't' } }, { sort: { ts: 1 } } - - title: -> - return '' unless Template.instance().subscriptionsReady() - return Settings.findOne('Livechat_title')?.value or 'Rocket.Chat' - - color: -> - return 'transparent' unless Template.instance().subscriptionsReady() - return Settings.findOne('Livechat_title_color')?.value or '#C1272D' - -Template.room.events - 'keyup .input-message': (event) -> - Template.instance().chatMessages.keyup(visitor.getRoom(), event, Template.instance()) - # Inital height is 28. If the scrollHeight is greater than that( we have more text than area ), - # increase the size of the textarea. The max-height is set at 200 - # even if the scrollHeight become bigger than that it should never exceed that. - # Account for no text in the textarea when increasing the height. - # If there is no text, reset the height. - inputScrollHeight = $(event.currentTarget).prop('scrollHeight') - if inputScrollHeight > 28 - $(event.currentTarget).height( if $(event.currentTarget).val() == '' then '15px' else (if inputScrollHeight >= 200 then inputScrollHeight-50 else inputScrollHeight-20)) - - 'keydown .input-message': (event) -> - Template.instance().chatMessages.keydown(visitor.getRoom(), event, Template.instance()) - - 'click .new-message': (e) -> - Template.instance().atBottom = true - Template.instance().find('.input-message').focus() - - 'click .title': -> - parentCall 'toggleWindow' - - 'click .error': (e) -> - $(e.currentTarget).removeClass('show') - -Template.room.onCreated -> - self = @ - self.autorun -> - self.subscribe 'livechat:visitorRoom', visitor.getToken(), -> - room = ChatRoom.findOne() - if room? - visitor.setRoom room._id - RoomHistoryManager.getMoreIfIsEmpty room._id - - self.subscribe 'settings', ['Livechat_title', 'Livechat_title_color'] - - self.atBottom = true - -Template.room.onRendered -> - unless Meteor.userId() - return BlazeLayout.render 'main', {center: 'register'} - - this.chatMessages = new ChatMessages - this.chatMessages.init(this.firstNode) - -Template.room.onRendered -> - messages = this.find('.messages') - newMessage = this.find(".new-message") - - template = this - - onscroll = _.throttle -> - template.atBottom = messages.scrollTop >= messages.scrollHeight - messages.clientHeight - , 200 - - Meteor.setInterval -> - if template.atBottom - messages.scrollTop = messages.scrollHeight - messages.clientHeight - newMessage.className = "new-message not" - , 100 - - messages.addEventListener 'touchstart', -> - template.atBottom = false - - messages.addEventListener 'touchend', -> - onscroll() - # readMessage.enable() - # readMessage.read() - - messages.addEventListener 'scroll', -> - template.atBottom = false - onscroll() - - messages.addEventListener 'mousewheel', -> - template.atBottom = false - onscroll() - # readMessage.enable() - # readMessage.read() - - messages.addEventListener 'wheel', -> - template.atBottom = false - onscroll() - # readMessage.enable() - # readMessage.read() - - # salva a data da renderização para exibir alertas de novas mensagens - # $.data(this.firstNode, 'renderedAt', new Date) diff --git a/packages/rocketchat-livechat/app/client/views/room.html b/packages/rocketchat-livechat/app/client/views/room.html index 4edc9dce073fcf87b6cba671d29668094b7b16cd..399bd055b7e7446b740ad2a54e191cf990e455fc 100644 --- a/packages/rocketchat-livechat/app/client/views/room.html +++ b/packages/rocketchat-livechat/app/client/views/room.html @@ -1,28 +1,17 @@ <template name="room"> <div class="livechat-room"> <div class="title" style="background-color:{{color}}"> - <h1>{{title}}</h1> - </div> - <div class="messages"> - <div class="wrapper"> - <ul> - {{#each messages}} - {{#nrr nrrargs 'message' .}}{{/nrr}} - {{/each}} - </ul> - </div> - <div class="new-message not"> - <span>New messages</span> - </div> - - <div class="error"> - <span></span> - </div> - </div> - <div class="footer"> - <div class="input-wrapper"> - <textarea class="input-message" placeholder="Type your message"></textarea> + <div class="toolbar"> + {{#unless popoutActive}} + <i class="popout icon-link-ext" title="Open in a new window"></i> + {{/unless}} </div> + <h1>{{title}}</h1> </div> + {{#if currentUser}} + {{> messages}} + {{else}} + {{> register}} + {{/if}} </div> </template> diff --git a/packages/rocketchat-livechat/app/client/views/room.js b/packages/rocketchat-livechat/app/client/views/room.js new file mode 100644 index 0000000000000000000000000000000000000000..9e175b84ea99c5a98bee384b21732369421b3d42 --- /dev/null +++ b/packages/rocketchat-livechat/app/client/views/room.js @@ -0,0 +1,30 @@ +Template.room.helpers({ + title: function() { + var ref; + if (!Template.instance().subscriptionsReady()) { + return ''; + } + return ((ref = Settings.findOne('Livechat_title')) != null ? ref.value : void 0) || 'Rocket.Chat'; + }, + color: function() { + var ref; + if (!Template.instance().subscriptionsReady()) { + return 'transparent'; + } + return ((ref = Settings.findOne('Livechat_title_color')) != null ? ref.value : void 0) || '#C1272D'; + }, + popoutActive: function() { + return FlowRouter.getQueryParam('mode') === 'popout'; + } +}); + +Template.room.events({ + 'click .title': function() { + console.log('toggleWindow'); + return parentCall('toggleWindow'); + }, + 'click .popout': function(event) { + event.stopPropagation(); + parentCall('openPopout'); + } +}); diff --git a/public/livechat-demo.html b/packages/rocketchat-livechat/assets/demo.html similarity index 74% rename from public/livechat-demo.html rename to packages/rocketchat-livechat/assets/demo.html index 512a7f8d0c67513ee6a0f8c5442990abf19754bb..8b3929901c4b27e06112db2ed447caae359a74a5 100644 --- a/public/livechat-demo.html +++ b/packages/rocketchat-livechat/assets/demo.html @@ -8,12 +8,14 @@ var h = d.getElementsByTagName(s)[0], j = d.createElement(s); j.async = true; - j.src = '/packages/rocketchat_livechat/rocket-livechat.js'; + j.src = '/packages/rocketchat_livechat/assets/rocket-livechat.js'; h.parentNode.insertBefore(j, h); })(window, document, 'script', 'initRocket', '/livechat'); </script> </head> +<!-- Access: http://localhost:3000/packages/rocketchat_livechat/assets/demo.html --> + <body style="background-color: #EFEFEF"> <h1 style="color:#000">test</h1> <p style="color:#000">Talk to us.</p> diff --git a/packages/rocketchat-livechat/rocket-livechat.js b/packages/rocketchat-livechat/assets/rocket-livechat.js similarity index 79% rename from packages/rocketchat-livechat/rocket-livechat.js rename to packages/rocketchat-livechat/assets/rocket-livechat.js index 363881f57b95e67e09a21efe1e8fd8e8bfd7549c..b7633e3073ce12f42d79c0537f1d1bca1414f386 100644 --- a/packages/rocketchat-livechat/rocket-livechat.js +++ b/packages/rocketchat-livechat/assets/rocket-livechat.js @@ -4,24 +4,38 @@ // var h = d.getElementsByTagName(s)[0], // j = d.createElement(s); // j.async = true; -// j.src = 'rocket-livechat.js'; +// j.src = '/packages/rocketchat_livechat/assets/rocket-livechat.js'; // h.parentNode.insertBefore(j, h); // })(window, document, 'script', 'initRocket', 'http://localhost:5000/livechat'); // </script> ;(function(w) { var exports = {}; + var config = {}; + var widget; + + var closeWidget = () => { + widget.dataset.state = 'closed'; + widget.style.height = '30px'; + }; + + var openWidget = () => { + widget.dataset.state = 'opened'; + widget.style.height = '300px'; + }; var api = { - toggleWindow: function() { - var widget = document.querySelector('.rocketchat-widget'); + toggleWindow: function(forceClose) { if (widget.dataset.state === 'closed') { - widget.dataset.state = 'opened'; - widget.style.height = '300px'; + openWidget(); } else { - widget.dataset.state = 'closed'; - widget.style.height = '30px'; + closeWidget(); } + }, + openPopout: function() { + closeWidget(); + var popup = window.open(config.url + '?mode=popout', 'livechat-popout', 'width=400, height=450, toolbars=no'); + popup.focus(); } }; @@ -30,6 +44,8 @@ return; } + config.url = url; + var chatWidget = document.createElement('div'); chatWidget.dataset.state = 'closed'; chatWidget.className = 'rocketchat-widget'; @@ -48,6 +64,8 @@ document.getElementsByTagName('body')[0].appendChild(chatWidget); + widget = document.querySelector('.rocketchat-widget'); + w.addEventListener('message', function(msg) { if (typeof msg.data === 'object' && msg.data.src !== undefined && msg.data.src === 'rocketchat') { if (api[msg.data.fn] !== undefined && typeof api[msg.data.fn] === 'function') { diff --git a/packages/rocketchat-livechat/package.js b/packages/rocketchat-livechat/package.js index 882c160f666aa9e966cb3ef4e91adce982266f3e..c44b7834d237c1696c75914da5fe1cbb10707ade 100644 --- a/packages/rocketchat-livechat/package.js +++ b/packages/rocketchat-livechat/package.js @@ -70,7 +70,8 @@ Package.onUse(function(api) { api.addFiles('server/publications/visitorRoom.js', 'server'); // livechat app - api.addAssets('rocket-livechat.js', 'client'); + api.addAssets('assets/demo.html', 'client'); + api.addAssets('assets/rocket-livechat.js', 'client'); api.addAssets('public/livechat.css', 'client'); api.addAssets('public/livechat.js', 'client'); api.addAssets('public/head.html', 'server');