mirror of
https://github.com/UnickSoft/graphonline.git
synced 2025-07-03 00:06:40 +00:00
196 lines
7.5 KiB
JavaScript
Executable File
196 lines
7.5 KiB
JavaScript
Executable File
//Google map plugin by zmmaj from zmajsoft-team
|
|
//blah... version 2.
|
|
//problems? write to zmajsoft@zmajsoft.com
|
|
|
|
// Register a new CKEditor plugin.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.resourceManager.html#add
|
|
CKEDITOR.plugins.add( 'gg',
|
|
{
|
|
// The plugin initialization logic goes inside this method.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.pluginDefinition.html#init
|
|
init: function( editor )
|
|
{
|
|
// Create an editor command that stores the dialog initialization command.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.command.html
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialogCommand.html
|
|
editor.addCommand( 'simpleLinkDialog', new CKEDITOR.dialogCommand( 'simpleLinkDialog' ) );
|
|
|
|
// Create a toolbar button that executes the plugin command defined above.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.html#addButton
|
|
editor.ui.addButton( 'gg',
|
|
{
|
|
// Toolbar button tooltip.
|
|
label: 'Insert a ZS Google map',
|
|
// Reference to the plugin command name.
|
|
command: 'simpleLinkDialog',
|
|
// Button's icon file path.
|
|
icon: this.path + 'images/gg.png'
|
|
} );
|
|
|
|
// Add a new dialog window definition containing all UI elements and listeners.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.html#.add
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.dialogDefinition.html
|
|
CKEDITOR.dialog.add( 'simpleLinkDialog', function( editor )
|
|
{
|
|
return {
|
|
// Basic properties of the dialog window: title, minimum size.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.dialogDefinition.html
|
|
title : 'ZmajSoft Google Map',
|
|
minWidth : 400,
|
|
minHeight : 200,
|
|
// Dialog window contents.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.definition.content.html
|
|
contents :
|
|
[
|
|
{
|
|
// Definition of the Settings dialog window tab (page) with its id, label and contents.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.contentDefinition.html
|
|
id : 'general',
|
|
label : 'Settings',
|
|
elements :
|
|
[
|
|
// Dialog window UI element: HTML code field.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.html.html
|
|
{
|
|
type : 'html',
|
|
// HTML code to be shown inside the field.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.html.html#constructor
|
|
html : 'This dialog window lets you create and embed into text simple Google Map picture. </br> click <a href="http://www.mapcoordinates.net/en" target="_blank"> -->HERE<--</a> to find Latitude/Longitude.'
|
|
},
|
|
// Dialog window UI element: a text input field for the Latitude.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.textInput.html
|
|
{
|
|
type : 'text',
|
|
id : 'lat',
|
|
label : 'Latitude',
|
|
validate : CKEDITOR.dialog.validate.notEmpty( 'The link must have LATITUDE.' ),
|
|
required : true,
|
|
commit : function( data )
|
|
{
|
|
data.lat = this.getValue();
|
|
}
|
|
},
|
|
// Again same thing, this time for Longitude
|
|
{
|
|
type : 'text',
|
|
id : 'lon',
|
|
label : 'Longitude ',
|
|
validate : CKEDITOR.dialog.validate.notEmpty( 'The link must have a LONGITUDE.' ),
|
|
required : true,
|
|
commit : function( data )
|
|
{
|
|
data.lon = this.getValue();
|
|
}
|
|
},
|
|
{
|
|
type : 'text',
|
|
id : 'hor',
|
|
label : 'Map Horizontal size in px (default=512 max=640)',
|
|
validate : CKEDITOR.dialog.validate.notEmpty( 'The link must have a horizontal size.' ),
|
|
required : true,
|
|
commit : function( data )
|
|
{
|
|
data.hor = this.getValue();
|
|
}
|
|
},
|
|
{
|
|
type : 'text',
|
|
id : 'ver',
|
|
label : 'Map vertical size in px (default=512 max=640)',
|
|
validate : CKEDITOR.dialog.validate.notEmpty( 'The link must have a vertical size.' ),
|
|
required : true,
|
|
commit : function( data )
|
|
{
|
|
data.ver= this.getValue();
|
|
}
|
|
},
|
|
// Dialog window UI element: a selection field with link styles.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.select.html
|
|
{
|
|
type : 'select',
|
|
id : 'style',
|
|
label : 'map type (default=roadmap)',
|
|
// Items that will appear inside the selection field, in pairs of displayed text and value.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.select.html#constructor
|
|
items :
|
|
[
|
|
[ 'roadmap', 'r' ],
|
|
[ 'satellite', 's' ],
|
|
[ 'hybrid', 'h' ],
|
|
[ 'terrain', 't' ]
|
|
],
|
|
commit : function( data )
|
|
{
|
|
data.style = this.getValue();
|
|
}
|
|
},
|
|
|
|
{
|
|
type : 'select',
|
|
id : 'zoom',
|
|
label : 'Zoom Map (default=10)',
|
|
// Items that will appear inside the selection field, in pairs of displayed text and value.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.select.html#constructor
|
|
items :
|
|
[
|
|
[ '<none>', '10' ],[ '0', '0' ],[ '1', '1' ], ['2', '2' ], [ '3', '3' ], [ '4', '4' ], [ '5', '5' ], [ '6', '6' ],
|
|
[ '7', '7' ], [ '8', '8' ], [ '9', '9' ], [ '10', '10' ], [ '11', '11' ], [ '12', '12' ], [ '13', '13' ], [ '14', '14' ],
|
|
[ '15', '15' ], [ '16', '16' ], [ '17', '17' ], [ '18', '18' ], [ '19', '19' ], [ '20', '20' ], [ '21', '21' ]
|
|
],
|
|
commit : function( data )
|
|
{
|
|
data.zoom = this.getValue();
|
|
}
|
|
},
|
|
|
|
// Dialog window UI element: HTML code field.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.html.html
|
|
{
|
|
type : 'html',
|
|
// HTML code to be shown inside the field.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.ui.dialog.html.html#constructor
|
|
html : 'If you have problems Email to zmajsoft@zmajsoft.com </br> <a href="www.zmajsoft.com" target="_blank">zmmaj</a> from zmajSoft-team'
|
|
}
|
|
]
|
|
}
|
|
],
|
|
onOk : function()
|
|
{
|
|
// Create a link element and an object that will store the data entered in the dialog window.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dom.document.html#createElement
|
|
var dialog = this,
|
|
data = {},
|
|
link = editor.document.createElement( 'a' );
|
|
// Populate the data object with data entered in the dialog window.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dialog.html#commitContent
|
|
this.commitContent( data );
|
|
|
|
// Set the URL (href attribute) of the link element.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.dom.element.html#setAttribute
|
|
// link.setAttribute( 'href', data.url );
|
|
var tip="roadmap";
|
|
switch( data.style )
|
|
{
|
|
case 'r' :
|
|
tip='roadmap';
|
|
break;
|
|
case 's' :
|
|
tip='satellite';
|
|
break;
|
|
case 'h' :
|
|
tip='hybrid';
|
|
break;
|
|
case 't' :
|
|
tip='terrain';
|
|
break;
|
|
}
|
|
|
|
// Insert the link element into the current cursor position in the editor.
|
|
// http://docs.cksource.com/ckeditor_api/symbols/CKEDITOR.editor.html#insertElement
|
|
editor.insertHtml('<img src="http://maps.googleapis.com/maps/api/staticmap?zoom='+data.zoom+'&size='+data.hor+'x'+data.ver+'&maptype='+tip+'&markers=color:red%7Ccolor:red%7Clabel:C%7C'+data.lat+','+data.lon+'&sensor=false"/>');
|
|
}
|
|
};
|
|
} );
|
|
}
|
|
} );
|