Merge branch 'master', remote-tracking branch 'remotes/upstream/master'

* remotes/upstream/master:
  update tinymce to 3.5.0.1
  rev update
  DE strings
  slackr drop shadows extended
  Allow plugins to modify the contact photo menu
  rev update

* master:
This commit is contained in:
Simon L'nu 2012-05-15 23:40:35 -04:00
commit a3137eec11
32 changed files with 6389 additions and 5370 deletions

View File

@ -9,7 +9,7 @@ require_once('include/nav.php');
require_once('include/cache.php'); require_once('include/cache.php');
define ( 'FRIENDICA_PLATFORM', 'Friendica'); define ( 'FRIENDICA_PLATFORM', 'Friendica');
define ( 'FRIENDICA_VERSION', '3.0.1341' ); define ( 'FRIENDICA_VERSION', '3.0.1343' );
define ( 'DFRN_PROTOCOL_VERSION', '2.23' ); define ( 'DFRN_PROTOCOL_VERSION', '2.23' );
define ( 'DB_UPDATE_VERSION', 1143 ); define ( 'DB_UPDATE_VERSION', 1143 );

View File

@ -209,7 +209,7 @@ function contact_photo_menu($contact) {
); );
$args = array('contact' => $contact, 'menu' => $menu); $args = array('contact' => $contact, 'menu' => &$menu);
call_hooks('contact_photo_menu', $args); call_hooks('contact_photo_menu', $args);

View File

@ -1,3 +1,46 @@
Version 3.5.0.1 (2012-05-10)
Fixed bug where selection normalization logic would break the selections of parent elements using the element path.
Fixed bug where the autolink plugin would include trailing dots in domain names in the link creation.
Fixed bug where the autolink plugin would produce an error on older IE versions when pressing enter.
Fixed bug where old IE versions would throw an error during initialization when the editor was placed in an size restricted div.
Version 3.5 (2012-05-03)
Fixed menu rendering issue if the document was in rtl mode.
Fixed bug where the hide function would throw an error about a missing variable.
Fixed bug where autolink wouldn't convert URLs when hitting enter on IE due to the new enter key logic.
Fixed bug where formatting using shortcuts like ctrl+b wouldn't work properly the first time.
Fixed bug where selection.setContent after a formatter call wouldn't generate formatted contents.
Fixed bug where whitespace would be removed before/after invalid_elements when they where removed.
Fixed bug where updating styles using the theme image dialog in non inline mode on IE9 would produce errors.
Fixed bug where IE 8 would produce an error when using the contextmenu plugin.
Fixed bug where delete/backspace could remove contents of noneditable elements.
Fixed so background color in style preview gets computed from body element if the current style element is transparent.
Version 3.5b3 (2012-03-29)
Added cancel button to colour picker dialog.
Added figure and figcaption to the html5 visualblocks plugin.
Added default alignment options for the figure element.
Fixed bug where empty inline elements within block elements would sometimes produce a br child element.
Fixed bug where urls pointing to the same domain as the current one would cause undefined errors. Patch contributed by Paul Giberson.
Fixed bug where enter inside an editable element inside an non editable element would split the element.
Fixed bug where cut/copy/paste of noneditable elements didn't work.
Fixed bug where backspace would sometimes produce font elements on WebKit.
Fixed bug where WebKit would produce spans out of various inline elements when using backspace.
Fixed bug where IE9 wouldn't properly update image styles when images where resized.
Fixed bug where drag/drop of noneditable elements didn't work correctly.
Fixed bug where applying formatting to all contents wouldn't work correctly when an end point was inside an empty bock. Patch contributed by Jose Luiz.
Fixed bug where IE10 removed the scopeName from the DOM element interface and there for it produced an undefined string in element path.
Fixed bug where the caret would be placed at an incorrect location if you applied block formatting while having the caret at the end of the block.
Fixed bug where applying column changes using the cell dialog would only update the first column. Patch contributed by krzyko.
Fixed bug where the visualblocks plugin would force editor focus if it was turned on by default.
Fixed bug where the tabfocus plugin would tab to iframes these are now ignored.
Fixed bug where format drop down list wouldn't show the currently active format for a parent element.
Fixed bug where paste of plain text in IE 9 would remove the new line characters from text.
Fixed bug where the menu buttons/split button menus wouldn't be opened at the right location on older IE versions.
Fixed bug where Gecko browsers wouldn't properly display the right format when having the selection as specific places.
Fixed bug where shift+enter inside the body when having forced_root_blocks set to false would throw an error.
Fixed bug where the jQuery plugin would break the attr method of jQuery 1.7.2. Patch contributed by Markus Kemmerling.
Fixed so options like content_css accepts and array as well as a comma separated string as input.
Restructured the internal logic to make it more separate from Editor.js.
Updated the Sizzle engine to the latest version.
Version 3.5b2 (2012-03-15) Version 3.5b2 (2012-03-15)
Rewrote the enter key logic to normalize browser behavior. Rewrote the enter key logic to normalize browser behavior.
Fixed so enter within PRE elements produces a BR and shift+enter breaks/end the PRE. Can be disabled using the br_in_pre option. Fixed so enter within PRE elements produces a BR and shift+enter breaks/end the PRE. Can be disabled using the br_in_pre option.
@ -19,15 +62,6 @@ Version 3.5b1 (2012-03-08)
Fixed bug where the advlink dialog would produce an error about the addSelectAccessibility function not being defined. Fixed bug where the advlink dialog would produce an error about the addSelectAccessibility function not being defined.
Fixed bug where the caret would be placed at an incorrect position if span was removed by the invalid_elements setting. Fixed bug where the caret would be placed at an incorrect position if span was removed by the invalid_elements setting.
Fixed bug where elements inside a white space preserve element like pre didn't inherit the behavior while parsing. Fixed bug where elements inside a white space preserve element like pre didn't inherit the behavior while parsing.
Version 3.4.9.x (2012-02-xx)
Improved behaviour of backspacing into a table to be consistant across browsers and disable backspace when cursor immediately follows a table.
Improved edit CSS style plugin for single and multiple block selection and provide option to apply style to only selected text.
Fixed bug in Chrome where moving caret down in table and pasting throws errors.
Corrected reference to TinyMCE trim function.
Fixed bug where Ignore All in IE did not remove the underline from the selected word.
Fixed bug in html source editor word wrap option not wrapping text in Webkit browsers.
Fixed bug where it was possible to insert an invalid colour in the color pop-up dialog.
Fixed bug in Webkit where if anchor is on last line by itself caret can not be placed after it.
Version 3.4.9 (2012-02-23) Version 3.4.9 (2012-02-23)
Added settings to wordcount plugin to configure update rate and checking wordcount on backspace and delete using wordcount_update_rate and wordcount_update_on_delete. Added settings to wordcount plugin to configure update rate and checking wordcount on backspace and delete using wordcount_update_rate and wordcount_update_on_delete.
Fixed bug in Webkit and IE where deleting empty paragraphs would remove entire editor contents. Fixed bug in Webkit and IE where deleting empty paragraphs would remove entire editor contents.

View File

@ -1 +1 @@
(function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;if(tinyMCE.isIE){return}a.onKeyDown.add(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}});a.onKeyPress.add(function(d,f){if(f.which==41){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a){this.parseCurrentLine(a,-1,"",false)},parseCurrentLine:function(i,d,b,g){var a,f,c,n,k,m,h,e,j;a=i.selection.getRng().cloneRange();if(a.startOffset<5){e=a.endContainer.previousSibling;if(e==null){if(a.endContainer.firstChild==null||a.endContainer.firstChild.nextSibling==null){return}e=a.endContainer.firstChild.nextSibling}j=e.length;a.setStart(e,j);a.setEnd(e,j);if(a.endOffset<5){return}f=a.endOffset;n=e}else{n=a.endContainer;if(n.nodeType!=3&&n.firstChild){while(n.nodeType!=3&&n.firstChild){n=n.firstChild}a.setStart(n,0);a.setEnd(n,n.nodeValue.length)}if(a.endOffset==1){f=2}else{f=a.endOffset-1-d}}c=f;do{a.setStart(n,f-2);a.setEnd(n,f-1);f-=1}while(a.toString()!=" "&&a.toString()!=""&&a.toString().charCodeAt(0)!=160&&(f-2)>=0&&a.toString()!=b);if(a.toString()==b||a.toString().charCodeAt(0)==160){a.setStart(n,f);a.setEnd(n,c);f+=1}else{if(a.startOffset==0){a.setStart(n,0);a.setEnd(n,c)}else{a.setStart(n,f);a.setEnd(n,c)}}m=a.toString();h=m.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|[A-Z0-9._%+-]+@)(.+)$/i);if(h){if(h[1]=="www."){h[1]="http://www."}else{if(/@$/.test(h[1])){h[1]="mailto:"+h[1]}}k=i.selection.getBookmark();i.selection.setRng(a);tinyMCE.execCommand("createlink",false,h[1]+h[2]);i.selection.moveToBookmark(k);if(tinyMCE.isWebKit){i.selection.collapse(false);var l=Math.min(n.length,c+1);a.setStart(n,l);a.setEnd(n,l);i.selection.setRng(a)}}},getInfo:function(){return{longname:"Autolink",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autolink",tinymce.plugins.AutolinkPlugin)})(); (function(){tinymce.create("tinymce.plugins.AutolinkPlugin",{init:function(a,b){var c=this;a.onKeyDown.addToTop(function(d,f){if(f.keyCode==13){return c.handleEnter(d)}});if(tinyMCE.isIE){return}a.onKeyPress.add(function(d,f){if(f.which==41){return c.handleEclipse(d)}});a.onKeyUp.add(function(d,f){if(f.keyCode==32){return c.handleSpacebar(d)}})},handleEclipse:function(a){this.parseCurrentLine(a,-1,"(",true)},handleSpacebar:function(a){this.parseCurrentLine(a,0,"",true)},handleEnter:function(a){this.parseCurrentLine(a,-1,"",false)},parseCurrentLine:function(i,d,b,g){var a,f,c,n,k,m,h,e,j;a=i.selection.getRng(true).cloneRange();if(a.startOffset<5){e=a.endContainer.previousSibling;if(e==null){if(a.endContainer.firstChild==null||a.endContainer.firstChild.nextSibling==null){return}e=a.endContainer.firstChild.nextSibling}j=e.length;a.setStart(e,j);a.setEnd(e,j);if(a.endOffset<5){return}f=a.endOffset;n=e}else{n=a.endContainer;if(n.nodeType!=3&&n.firstChild){while(n.nodeType!=3&&n.firstChild){n=n.firstChild}a.setStart(n,0);a.setEnd(n,n.nodeValue.length)}if(a.endOffset==1){f=2}else{f=a.endOffset-1-d}}c=f;do{a.setStart(n,f-2);a.setEnd(n,f-1);f-=1}while(a.toString()!=" "&&a.toString()!=""&&a.toString().charCodeAt(0)!=160&&(f-2)>=0&&a.toString()!=b);if(a.toString()==b||a.toString().charCodeAt(0)==160){a.setStart(n,f);a.setEnd(n,c);f+=1}else{if(a.startOffset==0){a.setStart(n,0);a.setEnd(n,c)}else{a.setStart(n,f);a.setEnd(n,c)}}var m=a.toString();if(m.charAt(m.length-1)=="."){a.setEnd(n,c-1)}m=a.toString();h=m.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|[A-Z0-9._%+-]+@)(.+)$/i);if(h){if(h[1]=="www."){h[1]="http://www."}else{if(/@$/.test(h[1])){h[1]="mailto:"+h[1]}}k=i.selection.getBookmark();i.selection.setRng(a);tinyMCE.execCommand("createlink",false,h[1]+h[2]);i.selection.moveToBookmark(k);if(tinyMCE.isWebKit){i.selection.collapse(false);var l=Math.min(n.length,c+1);a.setStart(n,l);a.setEnd(n,l);i.selection.setRng(a)}}},getInfo:function(){return{longname:"Autolink",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/autolink",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("autolink",tinymce.plugins.AutolinkPlugin)})();

View File

@ -22,16 +22,16 @@
init : function(ed, url) { init : function(ed, url) {
var t = this; var t = this;
// Internet Explorer has built-in automatic linking
if (tinyMCE.isIE)
return;
// Add a key down handler // Add a key down handler
ed.onKeyDown.add(function(ed, e) { ed.onKeyDown.addToTop(function(ed, e) {
if (e.keyCode == 13) if (e.keyCode == 13)
return t.handleEnter(ed); return t.handleEnter(ed);
}); });
// Internet Explorer has built-in automatic linking for most cases
if (tinyMCE.isIE)
return;
ed.onKeyPress.add(function(ed, e) { ed.onKeyPress.add(function(ed, e) {
if (e.which == 41) if (e.which == 41)
return t.handleEclipse(ed); return t.handleEclipse(ed);
@ -61,7 +61,7 @@
// We need at least five characters to form a URL, // We need at least five characters to form a URL,
// hence, at minimum, five characters from the beginning of the line. // hence, at minimum, five characters from the beginning of the line.
r = ed.selection.getRng().cloneRange(); r = ed.selection.getRng(true).cloneRange();
if (r.startOffset < 5) { if (r.startOffset < 5) {
// During testing, the caret is placed inbetween two text nodes. // During testing, the caret is placed inbetween two text nodes.
// The previous text node contains the URL. // The previous text node contains the URL.
@ -124,6 +124,12 @@
r.setEnd(endContainer, start); r.setEnd(endContainer, start);
} }
// Exclude last . from word like "www.site.com."
var text = r.toString();
if (text.charAt(text.length - 1) == '.') {
r.setEnd(endContainer, start - 1);
}
text = r.toString(); text = r.toString();
matches = text.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|[A-Z0-9._%+-]+@)(.+)$/i); matches = text.match(/^(https?:\/\/|ssh:\/\/|ftp:\/\/|file:\/|www\.|[A-Z0-9._%+-]+@)(.+)$/i);

View File

@ -1 +1 @@
(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.FullScreenPlugin",{init:function(d,e){var f=this,g={},c,b;f.editor=d;d.addCommand("mceFullScreen",function(){var i,j=a.doc.documentElement;if(d.getParam("fullscreen_is_enabled")){if(d.getParam("fullscreen_new_window")){closeFullscreen()}else{a.win.setTimeout(function(){tinymce.dom.Event.remove(a.win,"resize",f.resizeFunc);tinyMCE.get(d.getParam("fullscreen_editor_id")).setContent(d.getContent());tinyMCE.remove(d);a.remove("mce_fullscreen_container");j.style.overflow=d.getParam("fullscreen_html_overflow");a.setStyle(a.doc.body,"overflow",d.getParam("fullscreen_overflow"));a.win.scrollTo(d.getParam("fullscreen_scrollx"),d.getParam("fullscreen_scrolly"));tinyMCE.settings=tinyMCE.oldSettings},10)}return}if(d.getParam("fullscreen_new_window")){i=a.win.open(e+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{i.resizeTo(screen.availWidth,screen.availHeight)}catch(h){}}else{tinyMCE.oldSettings=tinyMCE.settings;g.fullscreen_overflow=a.getStyle(a.doc.body,"overflow",1)||"auto";g.fullscreen_html_overflow=a.getStyle(j,"overflow",1);c=a.getViewPort();g.fullscreen_scrollx=c.x;g.fullscreen_scrolly=c.y;if(tinymce.isOpera&&g.fullscreen_overflow=="visible"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&g.fullscreen_overflow=="scroll"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&(g.fullscreen_html_overflow=="visible"||g.fullscreen_html_overflow=="scroll")){g.fullscreen_html_overflow="auto"}if(g.fullscreen_overflow=="0px"){g.fullscreen_overflow=""}a.setStyle(a.doc.body,"overflow","hidden");j.style.overflow="hidden";c=a.getViewPort();a.win.scrollTo(0,0);if(tinymce.isIE){c.h-=1}if(tinymce.isIE6){b="absolute;top:"+c.y}else{b="fixed;top:0"}n=a.add(a.doc.body,"div",{id:"mce_fullscreen_container",style:"position:"+b+";left:0;width:"+c.w+"px;height:"+c.h+"px;z-index:200000;"});a.add(n,"div",{id:"mce_fullscreen"});tinymce.each(d.settings,function(k,l){g[l]=k});g.id="mce_fullscreen";g.width=n.clientWidth;g.height=n.clientHeight-15;g.fullscreen_is_enabled=true;g.fullscreen_editor_id=d.id;g.theme_advanced_resizing=false;g.save_onsavecallback=function(){d.setContent(tinyMCE.get(g.id).getContent());d.execCommand("mceSave")};tinymce.each(d.getParam("fullscreen_settings"),function(m,l){g[l]=m});if(g.theme_advanced_toolbar_location==="external"){g.theme_advanced_toolbar_location="top"}f.fullscreenEditor=new tinymce.Editor("mce_fullscreen",g);f.fullscreenEditor.onInit.add(function(){f.fullscreenEditor.setContent(d.getContent());f.fullscreenEditor.focus()});f.fullscreenEditor.render();f.fullscreenElement=new tinymce.dom.Element("mce_fullscreen_container");f.fullscreenElement.update();f.resizeFunc=tinymce.dom.Event.add(a.win,"resize",function(){var o=tinymce.DOM.getViewPort(),l=f.fullscreenEditor,k,m;k=l.dom.getSize(l.getContainer().firstChild);m=l.dom.getSize(l.getContainer().getElementsByTagName("iframe")[0]);l.theme.resizeTo(o.w-k.w+m.w,o.h-k.h+m.h)})}});d.addButton("fullscreen",{title:"fullscreen.desc",cmd:"mceFullScreen"});d.onNodeChange.add(function(i,h){h.setActive("fullscreen",i.getParam("fullscreen_is_enabled"))})},getInfo:function(){return{longname:"Fullscreen",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("fullscreen",tinymce.plugins.FullScreenPlugin)})(); (function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.FullScreenPlugin",{init:function(d,e){var f=this,g={},c,b;f.editor=d;d.addCommand("mceFullScreen",function(){var i,j=a.doc.documentElement;if(d.getParam("fullscreen_is_enabled")){if(d.getParam("fullscreen_new_window")){closeFullscreen()}else{a.win.setTimeout(function(){tinymce.dom.Event.remove(a.win,"resize",f.resizeFunc);tinyMCE.get(d.getParam("fullscreen_editor_id")).setContent(d.getContent());tinyMCE.remove(d);a.remove("mce_fullscreen_container");j.style.overflow=d.getParam("fullscreen_html_overflow");a.setStyle(a.doc.body,"overflow",d.getParam("fullscreen_overflow"));a.win.scrollTo(d.getParam("fullscreen_scrollx"),d.getParam("fullscreen_scrolly"));tinyMCE.settings=tinyMCE.oldSettings},10)}return}if(d.getParam("fullscreen_new_window")){i=a.win.open(e+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{i.resizeTo(screen.availWidth,screen.availHeight)}catch(h){}}else{tinyMCE.oldSettings=tinyMCE.settings;g.fullscreen_overflow=a.getStyle(a.doc.body,"overflow",1)||"auto";g.fullscreen_html_overflow=a.getStyle(j,"overflow",1);c=a.getViewPort();g.fullscreen_scrollx=c.x;g.fullscreen_scrolly=c.y;if(tinymce.isOpera&&g.fullscreen_overflow=="visible"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&g.fullscreen_overflow=="scroll"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&(g.fullscreen_html_overflow=="visible"||g.fullscreen_html_overflow=="scroll")){g.fullscreen_html_overflow="auto"}if(g.fullscreen_overflow=="0px"){g.fullscreen_overflow=""}a.setStyle(a.doc.body,"overflow","hidden");j.style.overflow="hidden";c=a.getViewPort();a.win.scrollTo(0,0);if(tinymce.isIE){c.h-=1}if(tinymce.isIE6||document.compatMode=="BackCompat"){b="absolute;top:"+c.y}else{b="fixed;top:0"}n=a.add(a.doc.body,"div",{id:"mce_fullscreen_container",style:"position:"+b+";left:0;width:"+c.w+"px;height:"+c.h+"px;z-index:200000;"});a.add(n,"div",{id:"mce_fullscreen"});tinymce.each(d.settings,function(k,l){g[l]=k});g.id="mce_fullscreen";g.width=n.clientWidth;g.height=n.clientHeight-15;g.fullscreen_is_enabled=true;g.fullscreen_editor_id=d.id;g.theme_advanced_resizing=false;g.save_onsavecallback=function(){d.setContent(tinyMCE.get(g.id).getContent());d.execCommand("mceSave")};tinymce.each(d.getParam("fullscreen_settings"),function(m,l){g[l]=m});if(g.theme_advanced_toolbar_location==="external"){g.theme_advanced_toolbar_location="top"}f.fullscreenEditor=new tinymce.Editor("mce_fullscreen",g);f.fullscreenEditor.onInit.add(function(){f.fullscreenEditor.setContent(d.getContent());f.fullscreenEditor.focus()});f.fullscreenEditor.render();f.fullscreenElement=new tinymce.dom.Element("mce_fullscreen_container");f.fullscreenElement.update();f.resizeFunc=tinymce.dom.Event.add(a.win,"resize",function(){var o=tinymce.DOM.getViewPort(),l=f.fullscreenEditor,k,m;k=l.dom.getSize(l.getContainer().firstChild);m=l.dom.getSize(l.getContainer().getElementsByTagName("iframe")[0]);l.theme.resizeTo(o.w-k.w+m.w,o.h-k.h+m.h)})}});d.addButton("fullscreen",{title:"fullscreen.desc",cmd:"mceFullScreen"});d.onNodeChange.add(function(i,h){h.setActive("fullscreen",i.getParam("fullscreen_is_enabled"))})},getInfo:function(){return{longname:"Fullscreen",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("fullscreen",tinymce.plugins.FullScreenPlugin)})();

View File

@ -79,7 +79,7 @@
vp.h -= 1; vp.h -= 1;
// Use fixed position if it exists // Use fixed position if it exists
if (tinymce.isIE6) if (tinymce.isIE6 || document.compatMode == 'BackCompat')
posCss = 'absolute;top:' + vp.y; posCss = 'absolute;top:' + vp.y;
else else
posCss = 'fixed;top:0'; posCss = 'fixed;top:0';

File diff suppressed because one or more lines are too long

View File

@ -261,12 +261,96 @@
selection.collapse(start); selection.collapse(start);
} }
function canDelete(backspace) {
var rng, container, offset, nonEditableParent;
function removeNodeIfNotParent(node) {
var parent = container;
while (parent) {
if (parent === node) {
return;
}
parent = parent.parentNode;
}
dom.remove(node);
moveSelection();
}
function isNextPrevTreeNodeNonEditable() {
var node, walker, nonEmptyElements = ed.schema.getNonEmptyElements();
walker = new tinymce.dom.TreeWalker(container, ed.getBody());
while (node = (backspace ? walker.prev() : walker.next())) {
// Found IMG/INPUT etc
if (nonEmptyElements[node.nodeName.toLowerCase()]) {
break;
}
// Found text node with contents
if (node.nodeType === 3 && tinymce.trim(node.nodeValue).length > 0) {
break;
}
// Found non editable node
if (getContentEditable(node) === "false") {
removeNodeIfNotParent(node);
return true;
}
}
// Check if the content node is within a non editable parent
if (getNonEditableParent(node)) {
return true;
}
return false;
}
if (selection.isCollapsed()) {
rng = selection.getRng(true);
container = rng.startContainer;
offset = rng.startOffset;
container = getParentCaretContainer(container) || container;
// Is in noneditable parent
if (nonEditableParent = getNonEditableParent(container)) {
removeNodeIfNotParent(nonEditableParent);
return false;
}
// Check if the caret is in the middle of a text node
if (container.nodeType == 3 && (backspace ? offset > 0 : offset < container.nodeValue.length)) {
return true;
}
// Resolve container index
if (container.nodeType == 1) {
container = container.childNodes[offset] || container;
}
// Check if previous or next tree node is non editable then block the event
if (isNextPrevTreeNodeNonEditable()) {
return false;
}
}
return true;
}
startElement = selection.getStart() startElement = selection.getStart()
endElement = selection.getEnd(); endElement = selection.getEnd();
// Disable all key presses in contentEditable=false except delete or backspace // Disable all key presses in contentEditable=false except delete or backspace
nonEditableParent = getNonEditableParent(startElement) || getNonEditableParent(endElement); nonEditableParent = getNonEditableParent(startElement) || getNonEditableParent(endElement);
if (nonEditableParent && (keyCode < 112 || keyCode > 124) && keyCode != VK.DELETE && keyCode != VK.BACKSPACE) { if (nonEditableParent && (keyCode < 112 || keyCode > 124) && keyCode != VK.DELETE && keyCode != VK.BACKSPACE) {
// Is Ctrl+c, Ctrl+v or Ctrl+x then use default browser behavior
if ((tinymce.isMac ? e.metaKey : e.ctrlKey) && (keyCode == 67 || keyCode == 88 || keyCode == 86)) {
return;
}
e.preventDefault(); e.preventDefault();
// Arrow left/right select the element and collapse left/right // Arrow left/right select the element and collapse left/right
@ -298,6 +382,7 @@
positionCaretOnElement(nonEditableParent, true); positionCaretOnElement(nonEditableParent, true);
} else { } else {
dom.remove(nonEditableParent); dom.remove(nonEditableParent);
return;
} }
} else { } else {
removeCaretContainer(caretContainer); removeCaretContainer(caretContainer);
@ -315,23 +400,31 @@
positionCaretOnElement(nonEditableParent, false); positionCaretOnElement(nonEditableParent, false);
} else { } else {
dom.remove(nonEditableParent); dom.remove(nonEditableParent);
return;
} }
} else { } else {
removeCaretContainer(caretContainer); removeCaretContainer(caretContainer);
} }
} }
} }
if ((keyCode == VK.BACKSPACE || keyCode == VK.DELETE) && !canDelete(keyCode == VK.BACKSPACE)) {
e.preventDefault();
return false;
}
} }
} }
}; };
ed.onMouseDown.addToTop(function(ed, e) { ed.onMouseDown.addToTop(function(ed, e) {
// prevent collapsing selection to caret when clicking in a non-editable section
var node = ed.selection.getNode(); var node = ed.selection.getNode();
if (getContentEditable(node) === "false" && node == e.target) { if (getContentEditable(node) === "false" && node == e.target) {
e.preventDefault(); // Expand selection on mouse down we can't block the default event since it's used for drag/drop
moveSelection();
} }
}); });
ed.onMouseUp.addToTop(moveSelection); ed.onMouseUp.addToTop(moveSelection);
ed.onKeyDown.addToTop(handleKey); ed.onKeyDown.addToTop(handleKey);
ed.onKeyUp.addToTop(moveSelection); ed.onKeyUp.addToTop(moveSelection);
@ -341,6 +434,31 @@
init : function(ed, url) { init : function(ed, url) {
var editClass, nonEditClass, nonEditableRegExps; var editClass, nonEditClass, nonEditableRegExps;
// Converts configured regexps to noneditable span items
function convertRegExpsToNonEditable(ed, args) {
var i = nonEditableRegExps.length, content = args.content, cls = tinymce.trim(nonEditClass);
// Don't replace the variables when raw is used for example on undo/redo
if (args.format == "raw") {
return;
}
while (i--) {
content = content.replace(nonEditableRegExps[i], function(match) {
var args = arguments, index = args[args.length - 2];
// Is value inside an attribute then don't replace
if (index > 0 && content.charAt(index - 1) == '"') {
return match;
}
return '<span class="' + cls + '" data-mce-content="' + ed.dom.encode(args[0]) + '">' + ed.dom.encode(typeof(args[1]) === "string" ? args[1] : args[0]) + '</span>';
});
}
args.content = content;
};
editClass = " " + tinymce.trim(ed.getParam("noneditable_editable_class", "mceEditable")) + " "; editClass = " " + tinymce.trim(ed.getParam("noneditable_editable_class", "mceEditable")) + " ";
nonEditClass = " " + tinymce.trim(ed.getParam("noneditable_noneditable_class", "mceNonEditable")) + " "; nonEditClass = " " + tinymce.trim(ed.getParam("noneditable_noneditable_class", "mceNonEditable")) + " ";
@ -354,24 +472,8 @@
handleContentEditableSelection(ed); handleContentEditableSelection(ed);
if (nonEditableRegExps) { if (nonEditableRegExps) {
ed.onBeforeSetContent.add(function(ed, args) { ed.selection.onBeforeSetContent.add(convertRegExpsToNonEditable);
var i = nonEditableRegExps.length, content = args.content, cls = tinymce.trim(nonEditClass); ed.onBeforeSetContent.add(convertRegExpsToNonEditable);
// Don't replace the variables when raw is used for example on undo/redo
if (args.format == "raw") {
return;
}
while (i--) {
content = content.replace(nonEditableRegExps[i], function() {
var args = arguments;
return '<span class="' + cls + '" data-mce-content="' + ed.dom.encode(args[0]) + '">' + ed.dom.encode(typeof(args[1]) === "string" ? args[1] : args[0]) + '</span>';
});
}
args.content = content;
});
} }
// Apply contentEditable true/false on elements with the noneditable/editable classes // Apply contentEditable true/false on elements with the noneditable/editable classes

File diff suppressed because one or more lines are too long

View File

@ -359,7 +359,7 @@
} }
// IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser // IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
if (tinymce.isIE && document.documentMode >= 9) { if (tinymce.isIE && document.documentMode >= 9 && /<(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)/.test(o.content)) {
// IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser // IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
process([[/(?:<br>&nbsp;[\s\r\n]+|<br>)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:<br>&nbsp;[\s\r\n]+|<br>)*/g, '$1']]); process([[/(?:<br>&nbsp;[\s\r\n]+|<br>)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:<br>&nbsp;[\s\r\n]+|<br>)*/g, '$1']]);

View File

@ -1 +1 @@
(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(t){n=c.select(":input:enabled,*[tabindex]");function s(v){return v.nodeName==="BODY"||(v.type!="hidden"&&!(v.style.display=="none")&&!(v.style.visibility=="hidden")&&s(v.parentNode))}function i(v){return v.attributes.tabIndex.specified||v.nodeName=="INPUT"||v.nodeName=="TEXTAREA"}function u(){return tinymce.isIE6||tinymce.isIE7}function r(v){return((!u()||i(v)))&&v.getAttribute("tabindex")!="-1"&&s(v)}d(n,function(w,v){if(w.id==l.id){j=v;return false}});if(t>0){for(m=j+1;m<n.length;m++){if(r(n[m])){return n[m]}}}else{for(m=j-1;m>=0;m--){if(r(n[m])){return n[m]}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(n.id&&(l=tinymce.get(n.id||n.name))){l.focus()}else{window.setTimeout(function(){if(!tinymce.isWebKit){window.focus()}n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})(); (function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(t){n=c.select(":input:enabled,*[tabindex]:not(iframe)");function s(v){return v.nodeName==="BODY"||(v.type!="hidden"&&!(v.style.display=="none")&&!(v.style.visibility=="hidden")&&s(v.parentNode))}function i(v){return v.attributes.tabIndex.specified||v.nodeName=="INPUT"||v.nodeName=="TEXTAREA"}function u(){return tinymce.isIE6||tinymce.isIE7}function r(v){return((!u()||i(v)))&&v.getAttribute("tabindex")!="-1"&&s(v)}d(n,function(w,v){if(w.id==l.id){j=v;return false}});if(t>0){for(m=j+1;m<n.length;m++){if(r(n[m])){return n[m]}}}else{for(m=j-1;m>=0;m--){if(r(n[m])){return n[m]}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(n.id&&(l=tinymce.get(n.id||n.name))){l.focus()}else{window.setTimeout(function(){if(!tinymce.isWebKit){window.focus()}n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})();

View File

@ -22,7 +22,7 @@
var x, i, f, el, v; var x, i, f, el, v;
function find(d) { function find(d) {
el = DOM.select(':input:enabled,*[tabindex]'); el = DOM.select(':input:enabled,*[tabindex]:not(iframe)');
function canSelectRecursive(e) { function canSelectRecursive(e) {
return e.nodeName==="BODY" || (e.type != 'hidden' && return e.nodeName==="BODY" || (e.type != 'hidden' &&

View File

@ -137,7 +137,7 @@ function updateAction() {
do { do {
if (cell == tdElm) if (cell == tdElm)
break; break;
col += cell.getAttribute("colspan"); col += cell.getAttribute("colspan")?cell.getAttribute("colspan"):1;
} while ((cell = nextCell(cell)) != null); } while ((cell = nextCell(cell)) != null);
for (var i=0; i<rows.length; i++) { for (var i=0; i<rows.length; i++) {
@ -152,7 +152,7 @@ function updateAction() {
cell = updateCell(cell, true); cell = updateCell(cell, true);
break; break;
} }
curr += cell.getAttribute("colspan"); curr += cell.getAttribute("colspan")?cell.getAttribute("colspan"):1;
} while ((cell = nextCell(cell)) != null); } while ((cell = nextCell(cell)) != null);
} }

View File

@ -1,6 +1,6 @@
p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, blockquote, address, pre {display: block; padding-top: 10px; border: 1px dashed #BBB; background: transparent no-repeat} p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, blockquote, address, pre, figure {display: block; padding-top: 10px; border: 1px dashed #BBB; background: transparent no-repeat}
p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, address, pre {margin-left: 3px} p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, address, pre, figure {margin-left: 3px}
section, article, address, hgroup, aside {margin: 1em 0 0 3px} section, article, address, hgroup, aside, figure {margin: 0 0 1em 3px}
p {background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)} p {background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}
h1 {background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)} h1 {background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}
@ -17,3 +17,5 @@ address {background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH
pre {background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)} pre {background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}
hgroup {background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)} hgroup {background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}
aside {background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)} aside {background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}
figure {background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}
figcaption {border: 1px dashed #BBB}

View File

@ -1 +1 @@
(function(){tinymce.create("tinymce.plugins.VisualBlocks",{init:function(a,b){var c;if(!window.NodeList){return}a.addCommand("mceVisualBlocks",function(){var e=a.dom,d;if(!c){c=e.uniqueId();d=e.create("link",{id:c,rel:"stylesheet",href:b+"/css/visualblocks.css"});a.getDoc().getElementsByTagName("head")[0].appendChild(d)}else{d=e.get(c);d.disabled=!d.disabled}a.controlManager.setActive("visualblocks",!d.disabled)});a.addButton("visualblocks",{title:"visualblocks.desc",cmd:"mceVisualBlocks"});a.onInit.add(function(){if(a.settings.visualblocks_default_state){a.execCommand("mceVisualBlocks")}})},getInfo:function(){return{longname:"Visual blocks",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("visualblocks",tinymce.plugins.VisualBlocks)})(); (function(){tinymce.create("tinymce.plugins.VisualBlocks",{init:function(a,b){var c;if(!window.NodeList){return}a.addCommand("mceVisualBlocks",function(){var e=a.dom,d;if(!c){c=e.uniqueId();d=e.create("link",{id:c,rel:"stylesheet",href:b+"/css/visualblocks.css"});a.getDoc().getElementsByTagName("head")[0].appendChild(d)}else{d=e.get(c);d.disabled=!d.disabled}a.controlManager.setActive("visualblocks",!d.disabled)});a.addButton("visualblocks",{title:"visualblocks.desc",cmd:"mceVisualBlocks"});a.onInit.add(function(){if(a.settings.visualblocks_default_state){a.execCommand("mceVisualBlocks",false,null,{skip_focus:true})}})},getInfo:function(){return{longname:"Visual blocks",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("visualblocks",tinymce.plugins.VisualBlocks)})();

View File

@ -42,7 +42,7 @@
ed.onInit.add(function() { ed.onInit.add(function() {
if (ed.settings.visualblocks_default_state) { if (ed.settings.visualblocks_default_state) {
ed.execCommand('mceVisualBlocks'); ed.execCommand('mceVisualBlocks', false, null, {skip_focus : true});
} }
}); });
}, },

View File

@ -62,12 +62,8 @@
<div class="mceActionPanel"> <div class="mceActionPanel">
<input type="submit" id="insert" name="insert" value="{#apply}" /> <input type="submit" id="insert" name="insert" value="{#apply}" />
<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();"/>
<div id="preview"></div> <div id="preview_wrapper"><div id="previewblock"><label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" class="text mceFocus" aria-required="true" /></div><span id="preview"></span></div>
<div id="previewblock">
<label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" class="text mceFocus" aria-required="true" />
</div>
</div> </div>
</form> </form>
</body> </body>

File diff suppressed because one or more lines are too long

View File

@ -69,6 +69,16 @@
each(previewStyles.split(' '), function(name) { each(previewStyles.split(' '), function(name) {
var value = dom.getStyle(previewElm, name, true); var value = dom.getStyle(previewElm, name, true);
// If background is transparent then check if the body has a background color we can use
if (name == 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) {
value = dom.getStyle(ed.getBody(), name, true);
// Ignore white since it's the default color, not the nicest fix
if (dom.toHex(value).toLowerCase() == '#ffffff') {
return;
}
}
// Old IE won't calculate the font size so we need to do that manually // Old IE won't calculate the font size so we need to do that manually
if (name == 'font-size') { if (name == 'font-size') {
if (/em|%$/.test(value)) { if (/em|%$/.test(value)) {
@ -608,7 +618,7 @@
// TODO: ACC Should have an aria-describedby attribute which is user-configurable to describe what this field is actually for. // TODO: ACC Should have an aria-describedby attribute which is user-configurable to describe what this field is actually for.
// Maybe actually inherit it from the original textara? // Maybe actually inherit it from the original textara?
n = p = DOM.create('span', {role : 'application', 'aria-labelledby' : ed.id + '_voice', id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '')}); n = p = DOM.create('span', {role : 'application', 'aria-labelledby' : ed.id + '_voice', id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '') + (ed.settings.directionality == "rtl" ? ' mceRtl' : '')});
DOM.add(n, 'span', {'class': 'mceVoiceLabel', 'style': 'display:none;', id: ed.id + '_voice'}, s.aria_label); DOM.add(n, 'span', {'class': 'mceVoiceLabel', 'style': 'display:none;', id: ed.id + '_voice'}, s.aria_label);
if (!DOM.boxModel) if (!DOM.boxModel)
@ -925,7 +935,7 @@
}, },
_addToolbars : function(c, o) { _addToolbars : function(c, o) {
var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a, toolbarGroup; var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a, toolbarGroup, toolbarsExist = false;
toolbarGroup = cf.createToolbarGroup('toolbargroup', { toolbarGroup = cf.createToolbarGroup('toolbargroup', {
'name': ed.getLang('advanced.toolbar'), 'name': ed.getLang('advanced.toolbar'),
@ -941,6 +951,7 @@
// Create toolbar and add the controls // Create toolbar and add the controls
for (i=1; (v = s['theme_advanced_buttons' + i]); i++) { for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {
toolbarsExist = true;
tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i}); tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i});
if (s['theme_advanced_buttons' + i + '_add']) if (s['theme_advanced_buttons' + i + '_add'])
@ -954,6 +965,9 @@
o.deltaHeight -= s.theme_advanced_row_height; o.deltaHeight -= s.theme_advanced_row_height;
} }
// Handle case when there are no toolbar buttons and ensure editor height is adjusted accordingly
if (!toolbarsExist)
o.deltaHeight -= s.theme_advanced_row_height;
h.push(toolbarGroup.renderHTML()); h.push(toolbarGroup.renderHTML());
h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->')); h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));
DOM.setHTML(n, h.join('')); DOM.setHTML(n, h.join(''));
@ -1112,7 +1126,7 @@
} }
if (c = cm.get('formatselect')) { if (c = cm.get('formatselect')) {
p = getParent(DOM.isBlock); p = getParent(ed.dom.isBlock);
if (p) if (p)
c.select(p.nodeName.toLowerCase()); c.select(p.nodeName.toLowerCase());
@ -1210,7 +1224,7 @@
return; return;
// Handle prefix // Handle prefix
if (tinymce.isIE && n.scopeName !== 'HTML') if (tinymce.isIE && n.scopeName !== 'HTML' && n.scopeName)
na = n.scopeName + ':' + na; na = n.scopeName + ':' + na;
// Remove internal prefix // Remove internal prefix
@ -1271,7 +1285,7 @@
if (v) { if (v) {
ti += 'class: ' + v + ' '; ti += 'class: ' + v + ' ';
if (DOM.isBlock(n) || na == 'img' || na == 'span') if (ed.dom.isBlock(n) || na == 'img' || na == 'span')
na += '.' + v; na += '.' + v;
} }
} }

View File

@ -104,10 +104,12 @@ var ImageDialog = {
}, },
updateStyle : function() { updateStyle : function() {
var dom = tinyMCEPopup.dom, st, v, f = document.forms[0]; var dom = tinyMCEPopup.dom, st = {}, v, f = document.forms[0];
if (tinyMCEPopup.editor.settings.inline_styles) { if (tinyMCEPopup.editor.settings.inline_styles) {
st = tinyMCEPopup.dom.parseStyle(this.styleVal); tinymce.each(tinyMCEPopup.dom.parseStyle(this.styleVal), function(value, key) {
st[key] = value;
});
// Handle align // Handle align
v = getSelectValue(f, 'align'); v = getSelectValue(f, 'align');

View File

@ -94,11 +94,12 @@ h3 {font-size:14px;}
#plugintable, #about #plugintable td {border:1px solid #919B9C;} #plugintable, #about #plugintable td {border:1px solid #919B9C;}
#plugintable {width:96%; margin-top:10px;} #plugintable {width:96%; margin-top:10px;}
#pluginscontainer {height:290px; overflow:auto;} #pluginscontainer {height:290px; overflow:auto;}
#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;} #colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px}
#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline}
#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap}
#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
#colorpicker #light div {overflow:hidden;} #colorpicker #light div {overflow:hidden;}
#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
#colorpicker .panel_wrapper div.current {height:175px;} #colorpicker .panel_wrapper div.current {height:175px;}
#colorpicker #namedcolors {width:150px;} #colorpicker #namedcolors {width:150px;}
#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}

View File

@ -58,7 +58,7 @@
/* Menu */ /* Menu */
.highcontrastSkin .mceNoIcons span.mceIcon {width:0;} .highcontrastSkin .mceNoIcons span.mceIcon {width:0;}
.highcontrastSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid; } .highcontrastSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid; direction:ltr}
.highcontrastSkin .mceMenu table {background:white; color: black} .highcontrastSkin .mceMenu table {background:white; color: black}
.highcontrastSkin .mceNoIcons a .mceText {padding-left:10px} .highcontrastSkin .mceNoIcons a .mceText {padding-left:10px}
.highcontrastSkin .mceMenu a, .highcontrastSkin .mceMenu span, .highcontrastSkin .mceMenu {display:block;background:white; color: black} .highcontrastSkin .mceMenu a, .highcontrastSkin .mceMenu span, .highcontrastSkin .mceMenu {display:block;background:white; color: black}
@ -90,6 +90,10 @@
.highcontrastSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF} .highcontrastSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF}
.highcontrastSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} .highcontrastSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
/* Rtl */
.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0}
.mceRtl .mceMenuItem .mceText {text-align: right}
/* Formats */ /* Formats */
.highcontrastSkin .mce_p span.mceText {} .highcontrastSkin .mce_p span.mceText {}
.highcontrastSkin .mce_address span.mceText {font-style:italic} .highcontrastSkin .mce_address span.mceText {font-style:italic}

View File

@ -105,11 +105,12 @@ h3 {font-size:14px;}
#plugintable, #about #plugintable td {border:1px solid #919B9C;} #plugintable, #about #plugintable td {border:1px solid #919B9C;}
#plugintable {width:96%; margin-top:10px;} #plugintable {width:96%; margin-top:10px;}
#pluginscontainer {height:290px; overflow:auto;} #pluginscontainer {height:290px; overflow:auto;}
#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;} #colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px}
#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline}
#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap}
#colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;} #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
#colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;} #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
#colorpicker #light div {overflow:hidden;} #colorpicker #light div {overflow:hidden;}
#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
#colorpicker .panel_wrapper div.current {height:175px;} #colorpicker .panel_wrapper div.current {height:175px;}
#colorpicker #namedcolors {width:150px;} #colorpicker #namedcolors {width:150px;}
#colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;} #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}

View File

@ -86,7 +86,7 @@
.o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden} .o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden}
/* Menu */ /* Menu */
.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD} .o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD; direction:ltr}
.o2k7Skin .mceNoIcons span.mceIcon {width:0;} .o2k7Skin .mceNoIcons span.mceIcon {width:0;}
.o2k7Skin .mceNoIcons a .mceText {padding-left:10px} .o2k7Skin .mceNoIcons a .mceText {padding-left:10px}
.o2k7Skin .mceMenu table {background:#FFF} .o2k7Skin .mceMenu table {background:#FFF}
@ -112,6 +112,10 @@
.o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF} .o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF}
.o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px} .o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
/* Rtl */
.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0}
.mceRtl .mceMenuItem .mceText {text-align: right}
/* Formats */ /* Formats */
.o2k7Skin .mce_formatPreview a {font-size:10px} .o2k7Skin .mce_formatPreview a {font-size:10px}
.o2k7Skin .mce_p span.mceText {} .o2k7Skin .mce_p span.mceText {}

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

View File

@ -6,9 +6,9 @@
#, fuzzy #, fuzzy
msgid "" msgid ""
msgstr "" msgstr ""
"Project-Id-Version: 3.0.1341\n" "Project-Id-Version: 3.0.1343\n"
"Report-Msgid-Bugs-To: \n" "Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2012-05-13 10:00-0700\n" "POT-Creation-Date: 2012-05-15 10:00-0700\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -150,15 +150,15 @@ msgstr ""
#: ../../addon/statusnet/statusnet.php:318 #: ../../addon/statusnet/statusnet.php:318
#: ../../addon/statusnet/statusnet.php:325 #: ../../addon/statusnet/statusnet.php:325
#: ../../addon/statusnet/statusnet.php:353 #: ../../addon/statusnet/statusnet.php:353
#: ../../addon/statusnet/statusnet.php:553 ../../addon/tumblr/tumblr.php:90 #: ../../addon/statusnet/statusnet.php:561 ../../addon/tumblr/tumblr.php:90
#: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88 #: ../../addon/numfriends/numfriends.php:85 ../../addon/gnot/gnot.php:88
#: ../../addon/wppost/wppost.php:102 ../../addon/showmore/showmore.php:48 #: ../../addon/wppost/wppost.php:109 ../../addon/showmore/showmore.php:48
#: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:180 #: ../../addon/piwik/piwik.php:89 ../../addon/twitter/twitter.php:180
#: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:375 #: ../../addon/twitter/twitter.php:209 ../../addon/twitter/twitter.php:381
#: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102 #: ../../addon/irc/irc.php:55 ../../addon/blogger/blogger.php:102
#: ../../addon/posterous/posterous.php:103 #: ../../addon/posterous/posterous.php:103
#: ../../view/theme/cleanzero/config.php:80 #: ../../view/theme/cleanzero/config.php:80
#: ../../view/theme/diabook/theme.php:753 #: ../../view/theme/diabook/theme.php:752
#: ../../view/theme/diabook/config.php:190 #: ../../view/theme/diabook/config.php:190
#: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70 #: ../../view/theme/quattro/config.php:52 ../../view/theme/dispy/config.php:70
#: ../../include/conversation.php:558 #: ../../include/conversation.php:558
@ -352,7 +352,7 @@ msgstr ""
#: ../../mod/photos.php:51 ../../mod/photos.php:151 ../../mod/photos.php:879 #: ../../mod/photos.php:51 ../../mod/photos.php:151 ../../mod/photos.php:879
#: ../../mod/photos.php:950 ../../mod/photos.php:965 ../../mod/photos.php:1382 #: ../../mod/photos.php:950 ../../mod/photos.php:965 ../../mod/photos.php:1382
#: ../../mod/photos.php:1394 ../../addon/communityhome/communityhome.php:110 #: ../../mod/photos.php:1394 ../../addon/communityhome/communityhome.php:110
#: ../../view/theme/diabook/theme.php:594 #: ../../view/theme/diabook/theme.php:593
msgid "Contact Photos" msgid "Contact Photos"
msgstr "" msgstr ""
@ -375,7 +375,7 @@ msgstr ""
#: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174 #: ../../mod/profile_photo.php:74 ../../mod/profile_photo.php:174
#: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261 #: ../../mod/profile_photo.php:252 ../../mod/profile_photo.php:261
#: ../../addon/communityhome/communityhome.php:111 #: ../../addon/communityhome/communityhome.php:111
#: ../../view/theme/diabook/theme.php:595 #: ../../view/theme/diabook/theme.php:594
msgid "Profile Photos" msgid "Profile Photos"
msgstr "" msgstr ""
@ -397,7 +397,7 @@ msgstr ""
#: ../../mod/photos.php:528 ../../mod/like.php:127 ../../mod/tagger.php:70 #: ../../mod/photos.php:528 ../../mod/like.php:127 ../../mod/tagger.php:70
#: ../../addon/communityhome/communityhome.php:163 #: ../../addon/communityhome/communityhome.php:163
#: ../../view/theme/diabook/theme.php:566 ../../include/text.php:1305 #: ../../view/theme/diabook/theme.php:565 ../../include/text.php:1305
#: ../../include/diaspora.php:1654 ../../include/conversation.php:53 #: ../../include/diaspora.php:1654 ../../include/conversation.php:53
#: ../../include/conversation.php:126 #: ../../include/conversation.php:126
msgid "photo" msgid "photo"
@ -1775,8 +1775,8 @@ msgid "Remove account"
msgstr "" msgstr ""
#: ../../mod/settings.php:88 ../../mod/admin.php:735 ../../mod/admin.php:940 #: ../../mod/settings.php:88 ../../mod/admin.php:735 ../../mod/admin.php:940
#: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:639 #: ../../addon/mathjax/mathjax.php:36 ../../view/theme/diabook/theme.php:638
#: ../../view/theme/diabook/theme.php:769 ../../include/nav.php:137 #: ../../view/theme/diabook/theme.php:768 ../../include/nav.php:137
msgid "Settings" msgid "Settings"
msgstr "" msgstr ""
@ -1832,7 +1832,7 @@ msgstr ""
#: ../../addon/impressum/impressum.php:77 #: ../../addon/impressum/impressum.php:77
#: ../../addon/openstreetmap/openstreetmap.php:80 #: ../../addon/openstreetmap/openstreetmap.php:80
#: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105 #: ../../addon/mathjax/mathjax.php:66 ../../addon/piwik/piwik.php:105
#: ../../addon/twitter/twitter.php:370 #: ../../addon/twitter/twitter.php:376
msgid "Settings updated." msgid "Settings updated."
msgstr "" msgstr ""
@ -1842,12 +1842,12 @@ msgid "Add application"
msgstr "" msgstr ""
#: ../../mod/settings.php:542 ../../mod/settings.php:568 #: ../../mod/settings.php:542 ../../mod/settings.php:568
#: ../../addon/statusnet/statusnet.php:547 #: ../../addon/statusnet/statusnet.php:555
msgid "Consumer Key" msgid "Consumer Key"
msgstr "" msgstr ""
#: ../../mod/settings.php:543 ../../mod/settings.php:569 #: ../../mod/settings.php:543 ../../mod/settings.php:569
#: ../../addon/statusnet/statusnet.php:546 #: ../../addon/statusnet/statusnet.php:554
msgid "Consumer Secret" msgid "Consumer Secret"
msgstr "" msgstr ""
@ -2787,8 +2787,8 @@ msgstr ""
#: ../../addon/facebook/facebook.php:1564 #: ../../addon/facebook/facebook.php:1564
#: ../../addon/communityhome/communityhome.php:158 #: ../../addon/communityhome/communityhome.php:158
#: ../../addon/communityhome/communityhome.php:167 #: ../../addon/communityhome/communityhome.php:167
#: ../../view/theme/diabook/theme.php:561 #: ../../view/theme/diabook/theme.php:560
#: ../../view/theme/diabook/theme.php:570 ../../include/diaspora.php:1654 #: ../../view/theme/diabook/theme.php:569 ../../include/diaspora.php:1654
#: ../../include/conversation.php:48 ../../include/conversation.php:57 #: ../../include/conversation.php:48 ../../include/conversation.php:57
#: ../../include/conversation.php:121 ../../include/conversation.php:130 #: ../../include/conversation.php:121 ../../include/conversation.php:130
msgid "status" msgid "status"
@ -2796,7 +2796,7 @@ msgstr ""
#: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1568 #: ../../mod/like.php:144 ../../addon/facebook/facebook.php:1568
#: ../../addon/communityhome/communityhome.php:172 #: ../../addon/communityhome/communityhome.php:172
#: ../../view/theme/diabook/theme.php:575 ../../include/diaspora.php:1670 #: ../../view/theme/diabook/theme.php:574 ../../include/diaspora.php:1670
#: ../../include/conversation.php:65 #: ../../include/conversation.php:65
#, php-format #, php-format
msgid "%1$s likes %2$s's %3$s" msgid "%1$s likes %2$s's %3$s"
@ -3137,7 +3137,7 @@ msgstr ""
msgid "Advanced" msgid "Advanced"
msgstr "" msgstr ""
#: ../../mod/admin.php:412 ../../addon/statusnet/statusnet.php:544 #: ../../mod/admin.php:412 ../../addon/statusnet/statusnet.php:552
msgid "Site name" msgid "Site name"
msgstr "" msgstr ""
@ -4073,7 +4073,7 @@ msgstr ""
msgid "No entries." msgid "No entries."
msgstr "" msgstr ""
#: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:622 #: ../../mod/suggest.php:38 ../../view/theme/diabook/theme.php:621
#: ../../include/contact_widgets.php:34 #: ../../include/contact_widgets.php:34
msgid "Friend Suggestions" msgid "Friend Suggestions"
msgstr "" msgstr ""
@ -4088,7 +4088,7 @@ msgstr ""
msgid "Ignore/Hide" msgid "Ignore/Hide"
msgstr "" msgstr ""
#: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:620 #: ../../mod/directory.php:47 ../../view/theme/diabook/theme.php:619
msgid "Global Directory" msgid "Global Directory"
msgstr "" msgstr ""
@ -4673,7 +4673,7 @@ msgid "Latest likes"
msgstr "" msgstr ""
#: ../../addon/communityhome/communityhome.php:155 #: ../../addon/communityhome/communityhome.php:155
#: ../../view/theme/diabook/theme.php:558 ../../include/text.php:1303 #: ../../view/theme/diabook/theme.php:557 ../../include/text.php:1303
#: ../../include/conversation.php:45 ../../include/conversation.php:118 #: ../../include/conversation.php:45 ../../include/conversation.php:118
msgid "event" msgid "event"
msgstr "" msgstr ""
@ -4824,7 +4824,7 @@ msgstr ""
msgid "Post to Drupal by default" msgid "Post to Drupal by default"
msgstr "" msgstr ""
#: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:190 #: ../../addon/drpost/drpost.php:184 ../../addon/wppost/wppost.php:198
#: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:192 #: ../../addon/blogger/blogger.php:172 ../../addon/posterous/posterous.php:192
msgid "Post from Friendica" msgid "Post from Friendica"
msgstr "" msgstr ""
@ -5272,14 +5272,14 @@ msgid "Send public postings to StatusNet by default"
msgstr "" msgstr ""
#: ../../addon/statusnet/statusnet.php:345 #: ../../addon/statusnet/statusnet.php:345
msgid "Send #tag links to StatusNet" msgid "Send linked #-tags and @-names to StatusNet"
msgstr "" msgstr ""
#: ../../addon/statusnet/statusnet.php:350 ../../addon/twitter/twitter.php:206 #: ../../addon/statusnet/statusnet.php:350 ../../addon/twitter/twitter.php:206
msgid "Clear OAuth configuration" msgid "Clear OAuth configuration"
msgstr "" msgstr ""
#: ../../addon/statusnet/statusnet.php:545 #: ../../addon/statusnet/statusnet.php:553
msgid "API URL" msgid "API URL"
msgstr "" msgstr ""
@ -5346,30 +5346,38 @@ msgstr ""
msgid "Post to Wordpress" msgid "Post to Wordpress"
msgstr "" msgstr ""
#: ../../addon/wppost/wppost.php:74 #: ../../addon/wppost/wppost.php:76
msgid "WordPress Post Settings" msgid "WordPress Post Settings"
msgstr "" msgstr ""
#: ../../addon/wppost/wppost.php:76 #: ../../addon/wppost/wppost.php:78
msgid "Enable WordPress Post Plugin" msgid "Enable WordPress Post Plugin"
msgstr "" msgstr ""
#: ../../addon/wppost/wppost.php:81 #: ../../addon/wppost/wppost.php:83
msgid "WordPress username" msgid "WordPress username"
msgstr "" msgstr ""
#: ../../addon/wppost/wppost.php:86 #: ../../addon/wppost/wppost.php:88
msgid "WordPress password" msgid "WordPress password"
msgstr "" msgstr ""
#: ../../addon/wppost/wppost.php:91 #: ../../addon/wppost/wppost.php:93
msgid "WordPress API URL" msgid "WordPress API URL"
msgstr "" msgstr ""
#: ../../addon/wppost/wppost.php:96 #: ../../addon/wppost/wppost.php:98
msgid "Post to WordPress by default" msgid "Post to WordPress by default"
msgstr "" msgstr ""
#: ../../addon/wppost/wppost.php:102
msgid "Provide a backlink to the Friendica post"
msgstr ""
#: ../../addon/wppost/wppost.php:204
msgid "Read the original post and comment stream on Friendica"
msgstr ""
#: ../../addon/showmore/showmore.php:38 #: ../../addon/showmore/showmore.php:38
msgid "\"Show more\" Settings" msgid "\"Show more\" Settings"
msgstr "" msgstr ""
@ -5481,14 +5489,14 @@ msgid "Send public postings to Twitter by default"
msgstr "" msgstr ""
#: ../../addon/twitter/twitter.php:201 #: ../../addon/twitter/twitter.php:201
msgid "Send #tag links to Twitter" msgid "Send linked #-tags and @-names to Twitter"
msgstr "" msgstr ""
#: ../../addon/twitter/twitter.php:377 #: ../../addon/twitter/twitter.php:383
msgid "Consumer key" msgid "Consumer key"
msgstr "" msgstr ""
#: ../../addon/twitter/twitter.php:378 #: ../../addon/twitter/twitter.php:384
msgid "Consumer secret" msgid "Consumer secret"
msgstr "" msgstr ""
@ -5631,96 +5639,97 @@ msgid "Your personal photos"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:129 #: ../../view/theme/diabook/theme.php:129
#: ../../view/theme/diabook/theme.php:639 #: ../../view/theme/diabook/theme.php:638
#: ../../view/theme/diabook/theme.php:743 #: ../../view/theme/diabook/theme.php:742
#: ../../view/theme/diabook/config.php:201 #: ../../view/theme/diabook/config.php:201
msgid "Community Pages" msgid "Community Pages"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:486 #: ../../view/theme/diabook/theme.php:485
#: ../../view/theme/diabook/theme.php:745 #: ../../view/theme/diabook/theme.php:744
#: ../../view/theme/diabook/config.php:203 #: ../../view/theme/diabook/config.php:203
msgid "Community Profiles" msgid "Community Profiles"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:507 #: ../../view/theme/diabook/theme.php:506
#: ../../view/theme/diabook/theme.php:750 #: ../../view/theme/diabook/theme.php:749
#: ../../view/theme/diabook/config.php:208 #: ../../view/theme/diabook/config.php:208
msgid "Last users" msgid "Last users"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:536 #: ../../view/theme/diabook/theme.php:535
#: ../../view/theme/diabook/theme.php:752 #: ../../view/theme/diabook/theme.php:751
#: ../../view/theme/diabook/config.php:210 #: ../../view/theme/diabook/config.php:210
msgid "Last likes" msgid "Last likes"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:581 #: ../../view/theme/diabook/theme.php:580
#: ../../view/theme/diabook/theme.php:751 #: ../../view/theme/diabook/theme.php:750
#: ../../view/theme/diabook/config.php:209 #: ../../view/theme/diabook/config.php:209
msgid "Last photos" msgid "Last photos"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:618 #: ../../view/theme/diabook/theme.php:617
#: ../../view/theme/diabook/theme.php:748 #: ../../view/theme/diabook/theme.php:747
#: ../../view/theme/diabook/config.php:206 #: ../../view/theme/diabook/config.php:206
msgid "Find Friends" msgid "Find Friends"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:619 #: ../../view/theme/diabook/theme.php:618
msgid "Local Directory" msgid "Local Directory"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:621 ../../include/contact_widgets.php:35 #: ../../view/theme/diabook/theme.php:620 ../../include/contact_widgets.php:35
msgid "Similar Interests" msgid "Similar Interests"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:623 ../../include/contact_widgets.php:37 #: ../../view/theme/diabook/theme.php:622 ../../include/contact_widgets.php:37
msgid "Invite Friends" msgid "Invite Friends"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:674 #: ../../view/theme/diabook/theme.php:673
#: ../../view/theme/diabook/theme.php:744 #: ../../view/theme/diabook/theme.php:743
#: ../../view/theme/diabook/config.php:202 #: ../../view/theme/diabook/config.php:202
msgid "Earth Layers" msgid "Earth Layers"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:679 #: ../../view/theme/diabook/theme.php:678
msgid "Set zoomfactor for Earth Layers" msgid "Set zoomfactor for Earth Layers"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:680 #: ../../view/theme/diabook/theme.php:679
#: ../../view/theme/diabook/config.php:199 #: ../../view/theme/diabook/config.php:199
msgid "Set longitude (X) for Earth Layers" msgid "Set longitude (X) for Earth Layers"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:681 #: ../../view/theme/diabook/theme.php:680
#: ../../view/theme/diabook/config.php:200 #: ../../view/theme/diabook/config.php:200
msgid "Set latitude (Y) for Earth Layers" msgid "Set latitude (Y) for Earth Layers"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:694 #: ../../view/theme/diabook/theme.php:693
#: ../../view/theme/diabook/theme.php:746 #: ../../view/theme/diabook/theme.php:745
#: ../../view/theme/diabook/config.php:204 #: ../../view/theme/diabook/config.php:204
msgid "Help or @NewHere ?" msgid "Help or @NewHere ?"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:701 #: ../../view/theme/diabook/theme.php:700
#: ../../view/theme/diabook/theme.php:747 #: ../../view/theme/diabook/theme.php:746
#: ../../view/theme/diabook/config.php:205 #: ../../view/theme/diabook/config.php:205
msgid "Connect Services" msgid "Connect Services"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:708 #: ../../view/theme/diabook/theme.php:707
#: ../../view/theme/diabook/theme.php:749 #: ../../view/theme/diabook/theme.php:748
msgid "Last Tweets" msgid "Last Tweets"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:711 #: ../../view/theme/diabook/theme.php:710
#: ../../view/theme/diabook/config.php:197 #: ../../view/theme/diabook/config.php:197
msgid "Set twitter search term" msgid "Set twitter search term"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:730
#: ../../view/theme/diabook/theme.php:731 #: ../../view/theme/diabook/theme.php:731
#: ../../view/theme/diabook/theme.php:732 #: ../../view/theme/diabook/theme.php:732
#: ../../view/theme/diabook/theme.php:733 #: ../../view/theme/diabook/theme.php:733
@ -5729,11 +5738,11 @@ msgstr ""
#: ../../view/theme/diabook/theme.php:736 #: ../../view/theme/diabook/theme.php:736
#: ../../view/theme/diabook/theme.php:737 #: ../../view/theme/diabook/theme.php:737
#: ../../view/theme/diabook/theme.php:738 #: ../../view/theme/diabook/theme.php:738
#: ../../view/theme/diabook/theme.php:739 #: ../../view/theme/diabook/theme.php:739 ../../include/acl_selectors.php:288
#: ../../view/theme/diabook/theme.php:740 ../../include/acl_selectors.php:288
msgid "don't show" msgid "don't show"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:730
#: ../../view/theme/diabook/theme.php:731 #: ../../view/theme/diabook/theme.php:731
#: ../../view/theme/diabook/theme.php:732 #: ../../view/theme/diabook/theme.php:732
#: ../../view/theme/diabook/theme.php:733 #: ../../view/theme/diabook/theme.php:733
@ -5742,12 +5751,11 @@ msgstr ""
#: ../../view/theme/diabook/theme.php:736 #: ../../view/theme/diabook/theme.php:736
#: ../../view/theme/diabook/theme.php:737 #: ../../view/theme/diabook/theme.php:737
#: ../../view/theme/diabook/theme.php:738 #: ../../view/theme/diabook/theme.php:738
#: ../../view/theme/diabook/theme.php:739 #: ../../view/theme/diabook/theme.php:739 ../../include/acl_selectors.php:287
#: ../../view/theme/diabook/theme.php:740 ../../include/acl_selectors.php:287
msgid "show" msgid "show"
msgstr "" msgstr ""
#: ../../view/theme/diabook/theme.php:741 #: ../../view/theme/diabook/theme.php:740
msgid "Show/hide boxes at right-hand column:" msgid "Show/hide boxes at right-hand column:"
msgstr "" msgstr ""

File diff suppressed because it is too large Load Diff

View File

@ -751,8 +751,10 @@ $a->strings["Network timeout"] = "Netzwerk Wartezeit";
$a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen)."; $a->strings["Value is in seconds. Set to 0 for unlimited (not recommended)."] = "Der Wert ist in Sekunden. Setze 0 für unbegrenzt (nicht empfohlen).";
$a->strings["Delivery interval"] = "Zustellungsintervall"; $a->strings["Delivery interval"] = "Zustellungsintervall";
$a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl an Sekunden um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared-Hosts, 2-3 für VPS, 0-1 für große dedizierte Server."; $a->strings["Delay background delivery processes by this many seconds to reduce system load. Recommend: 4-5 for shared hosts, 2-3 for virtual private servers. 0-1 for large dedicated servers."] = "Verzögere im Hintergrund laufende Auslieferungsprozesse um die angegebene Anzahl an Sekunden um die Systemlast zu verringern. Empfehlungen: 4-5 für Shared-Hosts, 2-3 für VPS, 0-1 für große dedizierte Server.";
$a->strings["Poll interval"] = "Abfrage Intervall";
$a->strings["Delay background polling processes by this many seconds to reduce system load. If 0, use delivery interval."] = "Verzögere Hintergrundprozesse um diese Anzahl an Sekunden um die Systemlast zu reduzieren. Bei 0 Sekunden wird das Auslieferungsintervall verwendet.";
$a->strings["Maximum Load Average"] = "Maximum Load Average"; $a->strings["Maximum Load Average"] = "Maximum Load Average";
$a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = ""; $a->strings["Maximum system load before delivery and poll processes are deferred - default 50."] = "Maximale Systemlast bevor Verteil- und Empfangsprozesse verschoben werden - Standard 50";
$a->strings["Update has been marked successful"] = "Update wurde als erfolgreich markiert"; $a->strings["Update has been marked successful"] = "Update wurde als erfolgreich markiert";
$a->strings["Executing %s failed. Check system logs."] = "Ausführung von %s schlug fehl. Systemprotokolle prüfen."; $a->strings["Executing %s failed. Check system logs."] = "Ausführung von %s schlug fehl. Systemprotokolle prüfen.";
$a->strings["Update %s was successfully applied."] = "Update %s war erfolgreich."; $a->strings["Update %s was successfully applied."] = "Update %s war erfolgreich.";
@ -831,6 +833,8 @@ $a->strings["No compatible communication protocols or feeds were discovered."] =
$a->strings["The profile address specified does not provide adequate information."] = "Die angegebene Profiladresse liefert unzureichende Informationen."; $a->strings["The profile address specified does not provide adequate information."] = "Die angegebene Profiladresse liefert unzureichende Informationen.";
$a->strings["An author or name was not found."] = "Es wurde kein Autor oder Name gefunden."; $a->strings["An author or name was not found."] = "Es wurde kein Autor oder Name gefunden.";
$a->strings["No browser URL could be matched to this address."] = "Zu dieser Adresse konnte keine passende Browser URL gefunden werden."; $a->strings["No browser URL could be matched to this address."] = "Zu dieser Adresse konnte keine passende Browser URL gefunden werden.";
$a->strings["Unable to match @-style Identity Address with a known protocol or email contact."] = "Konnte die @-Adresse mit keinem der bekannten Protokolle oder Email-Kontakte abgleichen.";
$a->strings["Use mailto: in front of address to force email check."] = "Verwende mailto: vor der Email Adresse um eine Überprüfung der Email Adresse zu erzwingen.";
$a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Die Adresse dieses Profils gehört zu einem Netzwerk, mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde."; $a->strings["The profile address specified belongs to a network which has been disabled on this site."] = "Die Adresse dieses Profils gehört zu einem Netzwerk, mit dem die Kommunikation auf dieser Seite ausgeschaltet wurde.";
$a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von dir erhalten können."; $a->strings["Limited profile. This person will be unable to receive direct/personal notifications from you."] = "Eingeschränktes Profil. Diese Person wird keine direkten/privaten Nachrichten von dir erhalten können.";
$a->strings["Unable to retrieve contact information."] = "Konnte die Kontaktinformationen nicht empfangen."; $a->strings["Unable to retrieve contact information."] = "Konnte die Kontaktinformationen nicht empfangen.";
@ -972,8 +976,8 @@ $a->strings["Install Facebook connector for this account."] = "Facebook-Connecto
$a->strings["Remove Facebook connector"] = "Facebook-Connector entfernen"; $a->strings["Remove Facebook connector"] = "Facebook-Connector entfernen";
$a->strings["Re-authenticate [This is necessary whenever your Facebook password is changed.]"] = "Neu authentifizieren [Das ist immer dann nötig, wenn Du Dein Facebook-Passwort geändert hast.]"; $a->strings["Re-authenticate [This is necessary whenever your Facebook password is changed.]"] = "Neu authentifizieren [Das ist immer dann nötig, wenn Du Dein Facebook-Passwort geändert hast.]";
$a->strings["Post to Facebook by default"] = "Veröffentliche standardmäßig bei Facebook"; $a->strings["Post to Facebook by default"] = "Veröffentliche standardmäßig bei Facebook";
$a->strings["Facebook friend linking has been disabled on this site. The following settings will have no effect."] = ""; $a->strings["Facebook friend linking has been disabled on this site. The following settings will have no effect."] = "Das verlinken von Facebook-Kontakten wurde auf dieser Seite deaktiviert. Die folgenden Einstellungen haben keinen Effekt.";
$a->strings["Facebook friend linking has been disabled on this site. If you disable it, you will be unable to re-enable it."] = ""; $a->strings["Facebook friend linking has been disabled on this site. If you disable it, you will be unable to re-enable it."] = "Das verlinken von Facebook-Kontakten wurde auf dieser Seite deaktiviert. Wenn du es ausgeschaltet hast, kannst du es nicht wieder aktivieren.";
$a->strings["Link all your Facebook friends and conversations on this website"] = "All meine Facebook-Kontakte und -Konversationen hier auf diese Website importieren"; $a->strings["Link all your Facebook friends and conversations on this website"] = "All meine Facebook-Kontakte und -Konversationen hier auf diese Website importieren";
$a->strings["Facebook conversations consist of your <em>profile wall</em> and your friend <em>stream</em>."] = "Facebook-Konversationen bestehen aus deinen Beiträgen auf deiner<em>Pinnwand</em>, sowie den Beiträgen deiner Freunde <em>Stream</em>."; $a->strings["Facebook conversations consist of your <em>profile wall</em> and your friend <em>stream</em>."] = "Facebook-Konversationen bestehen aus deinen Beiträgen auf deiner<em>Pinnwand</em>, sowie den Beiträgen deiner Freunde <em>Stream</em>.";
$a->strings["On this website, your Facebook friend stream is only visible to you."] = "Hier auf dieser Webseite kannst nur du die Beiträge Deiner Facebook-Freunde (Stream) sehen."; $a->strings["On this website, your Facebook friend stream is only visible to you."] = "Hier auf dieser Webseite kannst nur du die Beiträge Deiner Facebook-Freunde (Stream) sehen.";
@ -1255,6 +1259,8 @@ $a->strings["Posterous Post Settings"] = "Posterous Beitrags-Einstellungen";
$a->strings["Enable Posterous Post Plugin"] = "Posterous-Plugin aktivieren"; $a->strings["Enable Posterous Post Plugin"] = "Posterous-Plugin aktivieren";
$a->strings["Posterous login"] = "Posterous-Anmeldename"; $a->strings["Posterous login"] = "Posterous-Anmeldename";
$a->strings["Posterous password"] = "Posterous-Passwort"; $a->strings["Posterous password"] = "Posterous-Passwort";
$a->strings["Posterous site ID"] = "Posterous site ID";
$a->strings["Posterous API token"] = "Posterous API token";
$a->strings["Post to Posterous by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei Posterous"; $a->strings["Post to Posterous by default"] = "Veröffentliche öffentliche Beiträge standardmäßig bei Posterous";
$a->strings["Theme settings"] = "Themen Einstellungen"; $a->strings["Theme settings"] = "Themen Einstellungen";
$a->strings["Set resize level for images in posts and comments (width and height)"] = "Wähle das Vergrößerungsmaß für Bilder in Beiträgen und Kommentaren (Höhe und Breite)"; $a->strings["Set resize level for images in posts and comments (width and height)"] = "Wähle das Vergrößerungsmaß für Bilder in Beiträgen und Kommentaren (Höhe und Breite)";
@ -1277,14 +1283,22 @@ $a->strings["Find Friends"] = "Freunde finden";
$a->strings["Local Directory"] = "Lokales Verzeichnis"; $a->strings["Local Directory"] = "Lokales Verzeichnis";
$a->strings["Similar Interests"] = "Ähnliche Interessen"; $a->strings["Similar Interests"] = "Ähnliche Interessen";
$a->strings["Invite Friends"] = "Freunde einladen"; $a->strings["Invite Friends"] = "Freunde einladen";
$a->strings["Earth View"] = "Earth View"; $a->strings["Earth Layers"] = "Earth Layers";
$a->strings["Set zoomfactor for Earth Layers"] = "Zoomfaktor der Earth Layer";
$a->strings["Set longitude (X) for Earth Layers"] = "Longitude (X) der Earth Layer";
$a->strings["Set latitude (Y) for Earth Layers"] = "Latitude (Y) der Earth Layer";
$a->strings["Help or @NewHere ?"] = "Hilfe oder @NewHere"; $a->strings["Help or @NewHere ?"] = "Hilfe oder @NewHere";
$a->strings["Connect Services"] = "Verbinde Dienste"; $a->strings["Connect Services"] = "Verbinde Dienste";
$a->strings["Last Tweets"] = "Neueste Tweets"; $a->strings["Last Tweets"] = "Neueste Tweets";
$a->strings["Set twitter search term"] = ""; $a->strings["Set twitter search term"] = "Twitter Suchbegriff";
$a->strings["don't show"] = "nicht zeigen";
$a->strings["show"] = "zeigen";
$a->strings["Show/hide boxes at right-hand column:"] = "Rahmen auf der rechten Seite anzeigen/verbergen";
$a->strings["Set line-height for posts and comments"] = "Liniengröße für Beiträge und Kommantare festlegen"; $a->strings["Set line-height for posts and comments"] = "Liniengröße für Beiträge und Kommantare festlegen";
$a->strings["Set resolution for middle column"] = "Auflösung für die Mittelspalte setzen"; $a->strings["Set resolution for middle column"] = "Auflösung für die Mittelspalte setzen";
$a->strings["Set color scheme"] = "Wähle Farbschema"; $a->strings["Set color scheme"] = "Wähle Farbschema";
$a->strings["Set zoomfactor for Earth Layer"] = "Zoomfaktor der Earth Layer";
$a->strings["Last tweets"] = "Neueste Tweets";
$a->strings["Alignment"] = "Ausrichtung"; $a->strings["Alignment"] = "Ausrichtung";
$a->strings["Left"] = "Links"; $a->strings["Left"] = "Links";
$a->strings["Center"] = "Mitte"; $a->strings["Center"] = "Mitte";
@ -1514,8 +1528,6 @@ $a->strings["Image/photo"] = "Bild/Foto";
$a->strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS Informationen für den Datenbanken Server '%s' nicht ermitteln."; $a->strings["Cannot locate DNS info for database server '%s'"] = "Kann die DNS Informationen für den Datenbanken Server '%s' nicht ermitteln.";
$a->strings["[no subject]"] = "[kein Betreff]"; $a->strings["[no subject]"] = "[kein Betreff]";
$a->strings["Visible to everybody"] = "Für jeden sichtbar"; $a->strings["Visible to everybody"] = "Für jeden sichtbar";
$a->strings["show"] = "zeigen";
$a->strings["don't show"] = "nicht zeigen";
$a->strings["Friendica Notification"] = "Friendica-Benachrichtigung"; $a->strings["Friendica Notification"] = "Friendica-Benachrichtigung";
$a->strings["Thank You,"] = "Danke,"; $a->strings["Thank You,"] = "Danke,";
$a->strings["%s Administrator"] = "der Administrator von %s"; $a->strings["%s Administrator"] = "der Administrator von %s";

View File

@ -45,3 +45,17 @@ nav #site-location {
-moz-border-radius: 3px; -moz-border-radius: 3px;
box-shadow: 3px 3px 10px 0 #000000; box-shadow: 3px 3px 10px 0 #000000;
} }
#sidebar-page-list img {
border-radius: 3px;
-moz-border-radius: 3px;
box-shadow: 3px 3px 10px -2px #000000;
}
.contact-entry-photo img, .profile-match-photo img, #photo-photo img, .directory-photo-img {
border-radius: 3px;
-moz-border-radius: 3px;
box-shadow: 3px 3px 10px 0 #000000;
}