/* * Copyright [2015] [wisemapping] * * Licensed under WiseMapping Public License, Version 1.0 (the "License"). * It is basically the Apache License, Version 2.0 (the "License") plus the * "powered by wisemapping" text requirement on every single page; * you may not use this file except in compliance with the License. * You may obtain a copy of the license at * * http://www.wisemapping.org/license * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ const FloatingTip = require('./FloatingTip').default; const LinkIconTooltip = new Class({ Extends: FloatingTip, initialize(linkIcon) { $assert(linkIcon, 'linkIcon can not be null'); const nativeElement = $(linkIcon.getImage()._peer._native); this.parent(nativeElement, { // Content can also be a function of the target element! content: this._buildContent(linkIcon), html: true, placement: 'bottom', container: 'body', title: $msg('LINK'), trigger: 'manual', template: '', }); }, _buildContent(linkIcon) { const result = $('
').css({ padding: '5px', width: '100%', }); const text = $('
').text(`URL: ${linkIcon.getModel().getUrl()}`) .css({ 'white-space': 'pre-wrap', 'word-wrap': 'break-word', }); result.append(text); const imgContainer = $('
') .css({ width: '100%', textAlign: 'right', 'padding-bottom': '5px', 'padding-top': '5px', }); const img = $('') .prop('src', `http://free.pagepeeker.com/v2/thumbs.php?size=m&url=${linkIcon.getModel().getUrl()}`) .prop('img', linkIcon.getModel().getUrl()) .prop('alt', linkIcon.getModel().getUrl()); img.css('padding', '5px'); const link = $('').attr({ href: linkIcon.getModel().getUrl(), alt: 'Open in new window ...', target: '_blank', }); link.append(img); imgContainer.append(link); result.append(imgContainer); return result; }, }); export default LinkIconTooltip;