Initial checkin
This commit is contained in:
		
							
								
								
									
										178
									
								
								tinymce/jscripts/tiny_mce/plugins/table/cell.htm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										178
									
								
								tinymce/jscripts/tiny_mce/plugins/table/cell.htm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,178 @@ | ||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
| <head> | ||||
| 	<title>{#table_dlg.cell_title}</title> | ||||
| 	<script type="text/javascript" src="../../tiny_mce_popup.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/mctabs.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/form_utils.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/editable_selects.js"></script> | ||||
| 	<script type="text/javascript" src="js/cell.js"></script> | ||||
| 	<link href="css/cell.css" rel="stylesheet" type="text/css" /> | ||||
| </head> | ||||
| <body id="tablecell" style="display: none"> | ||||
| 	<form onsubmit="updateAction();return false;" action="#"> | ||||
| 		<div class="tabs"> | ||||
| 			<ul> | ||||
| 				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li> | ||||
| 				<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li> | ||||
| 			</ul> | ||||
| 		</div> | ||||
|  | ||||
| 		<div class="panel_wrapper"> | ||||
| 			<div id="general_panel" class="panel current"> | ||||
| 				<fieldset> | ||||
| 					<legend>{#table_dlg.general_props}</legend> | ||||
|  | ||||
| 					<table border="0" cellpadding="4" cellspacing="0"> | ||||
| 						<tr> | ||||
| 							<td><label for="align">{#table_dlg.align}</label></td> | ||||
| 							<td> | ||||
| 								<select id="align" name="align" class="mceFocus"> | ||||
| 									<option value="">{#not_set}</option> | ||||
| 									<option value="center">{#table_dlg.align_middle}</option> | ||||
| 									<option value="left">{#table_dlg.align_left}</option> | ||||
| 									<option value="right">{#table_dlg.align_right}</option> | ||||
| 								</select> | ||||
| 							</td> | ||||
| 		 | ||||
| 							<td><label for="celltype">{#table_dlg.cell_type}</label></td> | ||||
| 							<td> | ||||
| 								<select id="celltype" name="celltype"> | ||||
| 									<option value="td">{#table_dlg.td}</option> | ||||
| 									<option value="th">{#table_dlg.th}</option> | ||||
| 								</select> | ||||
| 							</td> | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td><label for="valign">{#table_dlg.valign}</label></td> | ||||
| 							<td> | ||||
| 								<select id="valign" name="valign"> | ||||
| 									<option value="">{#not_set}</option> | ||||
| 									<option value="top">{#table_dlg.align_top}</option> | ||||
| 									<option value="middle">{#table_dlg.align_middle}</option> | ||||
| 									<option value="bottom">{#table_dlg.align_bottom}</option> | ||||
| 								</select> | ||||
| 							</td> | ||||
|  | ||||
| 							<td><label for="scope">{#table_dlg.scope}</label></td> | ||||
| 							<td> | ||||
| 								<select id="scope" name="scope"> | ||||
| 									<option value="">{#not_set}</option> | ||||
| 									<option value="col">{#table.col}</option> | ||||
| 									<option value="row">{#table.row}</option> | ||||
| 									<option value="rowgroup">{#table_dlg.rowgroup}</option> | ||||
| 									<option value="colgroup">{#table_dlg.colgroup}</option> | ||||
| 								</select> | ||||
| 							</td> | ||||
|  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td><label for="width">{#table_dlg.width}</label></td> | ||||
| 							<td><input id="width" name="width" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td> | ||||
|  | ||||
| 							<td><label for="height">{#table_dlg.height}</label></td> | ||||
| 							<td><input id="height" name="height" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td> | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr id="styleSelectRow"> | ||||
| 							<td><label for="class">{#class_name}</label></td> | ||||
| 							<td colspan="3"> | ||||
| 								<select id="class" name="class" class="mceEditableSelect"> | ||||
| 									<option value="" selected="selected">{#not_set}</option> | ||||
| 								</select> | ||||
| 							</td> | ||||
| 						</tr> | ||||
| 					</table> | ||||
| 				</fieldset> | ||||
| 			</div> | ||||
|  | ||||
| 			<div id="advanced_panel" class="panel"> | ||||
| 				<fieldset> | ||||
| 					<legend>{#table_dlg.advanced_props}</legend> | ||||
|  | ||||
| 					<table border="0" cellpadding="0" cellspacing="4"> | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="id">{#table_dlg.id}</label></td>  | ||||
| 							<td><input id="id" name="id" type="text" value="" style="width: 200px" /></td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td><label for="style">{#table_dlg.style}</label></td> | ||||
| 							<td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td> | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="dir">{#table_dlg.langdir}</label></td>  | ||||
| 							<td> | ||||
| 								<select id="dir" name="dir" style="width: 200px">  | ||||
| 										<option value="">{#not_set}</option>  | ||||
| 										<option value="ltr">{#table_dlg.ltr}</option>  | ||||
| 										<option value="rtl">{#table_dlg.rtl}</option>  | ||||
| 								</select> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="lang">{#table_dlg.langcode}</label></td>  | ||||
| 							<td> | ||||
| 								<input id="lang" name="lang" type="text" value="" style="width: 200px" /> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td>  | ||||
| 							<td> | ||||
| 								<table border="0" cellpadding="0" cellspacing="0"> | ||||
| 									<tr> | ||||
| 										<td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td> | ||||
| 										<td id="backgroundimagebrowsercontainer"> </td> | ||||
| 									</tr> | ||||
| 								</table> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="bordercolor">{#table_dlg.bordercolor}</label></td>  | ||||
| 							<td> | ||||
| 								<table border="0" cellpadding="0" cellspacing="0"> | ||||
| 									<tr> | ||||
| 										<td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td> | ||||
| 										<td id="bordercolor_pickcontainer"> </td> | ||||
| 									</tr> | ||||
| 								</table> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td>  | ||||
| 							<td> | ||||
| 								<table border="0" cellpadding="0" cellspacing="0"> | ||||
| 									<tr> | ||||
| 										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td> | ||||
| 										<td id="bgcolor_pickcontainer"> </td> | ||||
| 									</tr> | ||||
| 								</table> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
| 					</table> | ||||
| 				</fieldset> | ||||
| 			</div> | ||||
| 		</div> | ||||
|  | ||||
| 		<div class="mceActionPanel"> | ||||
| 			<div> | ||||
| 				<select id="action" name="action"> | ||||
| 					<option value="cell">{#table_dlg.cell_cell}</option> | ||||
| 					<option value="row">{#table_dlg.cell_row}</option> | ||||
| 					<option value="all">{#table_dlg.cell_all}</option> | ||||
| 				</select> | ||||
| 			</div> | ||||
|  | ||||
| 			<input type="submit" id="insert" name="insert" value="{#update}" /> | ||||
| 			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" /> | ||||
| 		</div> | ||||
| 	</form> | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										17
									
								
								tinymce/jscripts/tiny_mce/plugins/table/css/cell.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								tinymce/jscripts/tiny_mce/plugins/table/css/cell.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,17 @@ | ||||
| /* CSS file for cell dialog in the table plugin */ | ||||
|  | ||||
| .panel_wrapper div.current { | ||||
| 	height: 200px; | ||||
| } | ||||
|  | ||||
| .advfield { | ||||
| 	width: 200px; | ||||
| } | ||||
|  | ||||
| #action { | ||||
| 	margin-bottom: 3px; | ||||
| } | ||||
|  | ||||
| #class { | ||||
| 	width: 150px; | ||||
| } | ||||
							
								
								
									
										25
									
								
								tinymce/jscripts/tiny_mce/plugins/table/css/row.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								tinymce/jscripts/tiny_mce/plugins/table/css/row.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,25 @@ | ||||
| /* CSS file for row dialog in the table plugin */ | ||||
|  | ||||
| .panel_wrapper div.current { | ||||
| 	height: 200px; | ||||
| } | ||||
|  | ||||
| .advfield { | ||||
| 	width: 200px; | ||||
| } | ||||
|  | ||||
| #action { | ||||
| 	margin-bottom: 3px; | ||||
| } | ||||
|  | ||||
| #rowtype,#align,#valign,#class,#height { | ||||
| 	width: 150px; | ||||
| } | ||||
|  | ||||
| #height { | ||||
| 	width: 50px;	 | ||||
| } | ||||
|  | ||||
| .col2 { | ||||
| 	padding-left: 20px; | ||||
| } | ||||
							
								
								
									
										13
									
								
								tinymce/jscripts/tiny_mce/plugins/table/css/table.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								tinymce/jscripts/tiny_mce/plugins/table/css/table.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| /* CSS file for table dialog in the table plugin */ | ||||
|  | ||||
| .panel_wrapper div.current { | ||||
| 	height: 245px; | ||||
| } | ||||
|  | ||||
| .advfield { | ||||
| 	width: 200px; | ||||
| } | ||||
|  | ||||
| #class { | ||||
| 	width: 150px; | ||||
| } | ||||
							
								
								
									
										1
									
								
								tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										1125
									
								
								tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										1125
									
								
								tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										286
									
								
								tinymce/jscripts/tiny_mce/plugins/table/js/cell.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										286
									
								
								tinymce/jscripts/tiny_mce/plugins/table/js/cell.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,286 @@ | ||||
| tinyMCEPopup.requireLangPack(); | ||||
|  | ||||
| var ed; | ||||
|  | ||||
| function init() { | ||||
| 	ed = tinyMCEPopup.editor; | ||||
| 	tinyMCEPopup.resizeToInnerSize(); | ||||
|  | ||||
| 	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); | ||||
| 	document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); | ||||
| 	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor') | ||||
|  | ||||
| 	var inst = ed; | ||||
| 	var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th"); | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style")); | ||||
|  | ||||
| 	// Get table cell data | ||||
| 	var celltype = tdElm.nodeName.toLowerCase(); | ||||
| 	var align = ed.dom.getAttrib(tdElm, 'align'); | ||||
| 	var valign = ed.dom.getAttrib(tdElm, 'valign'); | ||||
| 	var width = trimSize(getStyle(tdElm, 'width', 'width')); | ||||
| 	var height = trimSize(getStyle(tdElm, 'height', 'height')); | ||||
| 	var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor')); | ||||
| 	var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor')); | ||||
| 	var className = ed.dom.getAttrib(tdElm, 'class'); | ||||
| 	var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); | ||||
| 	var id = ed.dom.getAttrib(tdElm, 'id'); | ||||
| 	var lang = ed.dom.getAttrib(tdElm, 'lang'); | ||||
| 	var dir = ed.dom.getAttrib(tdElm, 'dir'); | ||||
| 	var scope = ed.dom.getAttrib(tdElm, 'scope'); | ||||
|  | ||||
| 	// Setup form | ||||
| 	addClassesToList('class', 'table_cell_styles'); | ||||
| 	TinyMCE_EditableSelects.init(); | ||||
|  | ||||
| 	if (!ed.dom.hasClass(tdElm, 'mceSelected')) { | ||||
| 		formObj.bordercolor.value = bordercolor; | ||||
| 		formObj.bgcolor.value = bgcolor; | ||||
| 		formObj.backgroundimage.value = backgroundimage; | ||||
| 		formObj.width.value = width; | ||||
| 		formObj.height.value = height; | ||||
| 		formObj.id.value = id; | ||||
| 		formObj.lang.value = lang; | ||||
| 		formObj.style.value = ed.dom.serializeStyle(st); | ||||
| 		selectByValue(formObj, 'align', align); | ||||
| 		selectByValue(formObj, 'valign', valign); | ||||
| 		selectByValue(formObj, 'class', className, true, true); | ||||
| 		selectByValue(formObj, 'celltype', celltype); | ||||
| 		selectByValue(formObj, 'dir', dir); | ||||
| 		selectByValue(formObj, 'scope', scope); | ||||
|  | ||||
| 		// Resize some elements | ||||
| 		if (isVisible('backgroundimagebrowser')) | ||||
| 			document.getElementById('backgroundimage').style.width = '180px'; | ||||
|  | ||||
| 		updateColor('bordercolor_pick', 'bordercolor'); | ||||
| 		updateColor('bgcolor_pick', 'bgcolor'); | ||||
| 	} else | ||||
| 		tinyMCEPopup.dom.hide('action'); | ||||
| } | ||||
|  | ||||
| function updateAction() { | ||||
| 	var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0]; | ||||
|  | ||||
| 	tinyMCEPopup.restoreSelection(); | ||||
| 	el = ed.selection.getStart(); | ||||
| 	tdElm = ed.dom.getParent(el, "td,th"); | ||||
| 	trElm = ed.dom.getParent(el, "tr"); | ||||
| 	tableElm = ed.dom.getParent(el, "table"); | ||||
|  | ||||
| 	// Cell is selected | ||||
| 	if (ed.dom.hasClass(tdElm, 'mceSelected')) { | ||||
| 		// Update all selected sells | ||||
| 		tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) { | ||||
| 			updateCell(td); | ||||
| 		}); | ||||
|  | ||||
| 		ed.addVisual(); | ||||
| 		ed.nodeChanged(); | ||||
| 		inst.execCommand('mceEndUndoLevel'); | ||||
| 		tinyMCEPopup.close(); | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	ed.execCommand('mceBeginUndoLevel'); | ||||
|  | ||||
| 	switch (getSelectValue(formObj, 'action')) { | ||||
| 		case "cell": | ||||
| 			var celltype = getSelectValue(formObj, 'celltype'); | ||||
| 			var scope = getSelectValue(formObj, 'scope'); | ||||
|  | ||||
| 			function doUpdate(s) { | ||||
| 				if (s) { | ||||
| 					updateCell(tdElm); | ||||
|  | ||||
| 					ed.addVisual(); | ||||
| 					ed.nodeChanged(); | ||||
| 					inst.execCommand('mceEndUndoLevel'); | ||||
| 					tinyMCEPopup.close(); | ||||
| 				} | ||||
| 			}; | ||||
|  | ||||
| 			if (ed.getParam("accessibility_warnings", 1)) { | ||||
| 				if (celltype == "th" && scope == "") | ||||
| 					tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate); | ||||
| 				else | ||||
| 					doUpdate(1); | ||||
|  | ||||
| 				return; | ||||
| 			} | ||||
|  | ||||
| 			updateCell(tdElm); | ||||
| 			break; | ||||
|  | ||||
| 		case "row": | ||||
| 			var cell = trElm.firstChild; | ||||
|  | ||||
| 			if (cell.nodeName != "TD" && cell.nodeName != "TH") | ||||
| 				cell = nextCell(cell); | ||||
|  | ||||
| 			do { | ||||
| 				cell = updateCell(cell, true); | ||||
| 			} while ((cell = nextCell(cell)) != null); | ||||
|  | ||||
| 			break; | ||||
|  | ||||
| 		case "all": | ||||
| 			var rows = tableElm.getElementsByTagName("tr"); | ||||
|  | ||||
| 			for (var i=0; i<rows.length; i++) { | ||||
| 				var cell = rows[i].firstChild; | ||||
|  | ||||
| 				if (cell.nodeName != "TD" && cell.nodeName != "TH") | ||||
| 					cell = nextCell(cell); | ||||
|  | ||||
| 				do { | ||||
| 					cell = updateCell(cell, true); | ||||
| 				} while ((cell = nextCell(cell)) != null); | ||||
| 			} | ||||
|  | ||||
| 			break; | ||||
| 	} | ||||
|  | ||||
| 	ed.addVisual(); | ||||
| 	ed.nodeChanged(); | ||||
| 	inst.execCommand('mceEndUndoLevel'); | ||||
| 	tinyMCEPopup.close(); | ||||
| } | ||||
|  | ||||
| function nextCell(elm) { | ||||
| 	while ((elm = elm.nextSibling) != null) { | ||||
| 		if (elm.nodeName == "TD" || elm.nodeName == "TH") | ||||
| 			return elm; | ||||
| 	} | ||||
|  | ||||
| 	return null; | ||||
| } | ||||
|  | ||||
| function updateCell(td, skip_id) { | ||||
| 	var inst = ed; | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var curCellType = td.nodeName.toLowerCase(); | ||||
| 	var celltype = getSelectValue(formObj, 'celltype'); | ||||
| 	var doc = inst.getDoc(); | ||||
| 	var dom = ed.dom; | ||||
|  | ||||
| 	if (!skip_id) | ||||
| 		td.setAttribute('id', formObj.id.value); | ||||
|  | ||||
| 	td.setAttribute('align', formObj.align.value); | ||||
| 	td.setAttribute('vAlign', formObj.valign.value); | ||||
| 	td.setAttribute('lang', formObj.lang.value); | ||||
| 	td.setAttribute('dir', getSelectValue(formObj, 'dir')); | ||||
| 	td.setAttribute('style', ed.dom.serializeStyle(ed.dom.parseStyle(formObj.style.value))); | ||||
| 	td.setAttribute('scope', formObj.scope.value); | ||||
| 	ed.dom.setAttrib(td, 'class', getSelectValue(formObj, 'class')); | ||||
|  | ||||
| 	// Clear deprecated attributes | ||||
| 	ed.dom.setAttrib(td, 'width', ''); | ||||
| 	ed.dom.setAttrib(td, 'height', ''); | ||||
| 	ed.dom.setAttrib(td, 'bgColor', ''); | ||||
| 	ed.dom.setAttrib(td, 'borderColor', ''); | ||||
| 	ed.dom.setAttrib(td, 'background', ''); | ||||
|  | ||||
| 	// Set styles | ||||
| 	td.style.width = getCSSSize(formObj.width.value); | ||||
| 	td.style.height = getCSSSize(formObj.height.value); | ||||
| 	if (formObj.bordercolor.value != "") { | ||||
| 		td.style.borderColor = formObj.bordercolor.value; | ||||
| 		td.style.borderStyle = td.style.borderStyle == "" ? "solid" : td.style.borderStyle; | ||||
| 		td.style.borderWidth = td.style.borderWidth == "" ? "1px" : td.style.borderWidth; | ||||
| 	} else | ||||
| 		td.style.borderColor = ''; | ||||
|  | ||||
| 	td.style.backgroundColor = formObj.bgcolor.value; | ||||
|  | ||||
| 	if (formObj.backgroundimage.value != "") | ||||
| 		td.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')"; | ||||
| 	else | ||||
| 		td.style.backgroundImage = ''; | ||||
|  | ||||
| 	if (curCellType != celltype) { | ||||
| 		// changing to a different node type | ||||
| 		var newCell = doc.createElement(celltype); | ||||
|  | ||||
| 		for (var c=0; c<td.childNodes.length; c++) | ||||
| 			newCell.appendChild(td.childNodes[c].cloneNode(1)); | ||||
|  | ||||
| 		for (var a=0; a<td.attributes.length; a++) | ||||
| 			ed.dom.setAttrib(newCell, td.attributes[a].name, ed.dom.getAttrib(td, td.attributes[a].name)); | ||||
|  | ||||
| 		td.parentNode.replaceChild(newCell, td); | ||||
| 		td = newCell; | ||||
| 	} | ||||
|  | ||||
| 	dom.setAttrib(td, 'style', dom.serializeStyle(dom.parseStyle(td.style.cssText))); | ||||
|  | ||||
| 	return td; | ||||
| } | ||||
|  | ||||
| function changedBackgroundImage() { | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var st = ed.dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	st['background-image'] = "url('" + formObj.backgroundimage.value + "')"; | ||||
|  | ||||
| 	formObj.style.value = ed.dom.serializeStyle(st); | ||||
| } | ||||
|  | ||||
| function changedSize() { | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var st = ed.dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	var width = formObj.width.value; | ||||
| 	if (width != "") | ||||
| 		st['width'] = getCSSSize(width); | ||||
| 	else | ||||
| 		st['width'] = ""; | ||||
|  | ||||
| 	var height = formObj.height.value; | ||||
| 	if (height != "") | ||||
| 		st['height'] = getCSSSize(height); | ||||
| 	else | ||||
| 		st['height'] = ""; | ||||
|  | ||||
| 	formObj.style.value = ed.dom.serializeStyle(st); | ||||
| } | ||||
|  | ||||
| function changedColor() { | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var st = ed.dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	st['background-color'] = formObj.bgcolor.value; | ||||
| 	st['border-color'] = formObj.bordercolor.value; | ||||
|  | ||||
| 	formObj.style.value = ed.dom.serializeStyle(st); | ||||
| } | ||||
|  | ||||
| function changedStyle() { | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var st = ed.dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	if (st['background-image']) | ||||
| 		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); | ||||
| 	else | ||||
| 		formObj.backgroundimage.value = ''; | ||||
|  | ||||
| 	if (st['width']) | ||||
| 		formObj.width.value = trimSize(st['width']); | ||||
|  | ||||
| 	if (st['height']) | ||||
| 		formObj.height.value = trimSize(st['height']); | ||||
|  | ||||
| 	if (st['background-color']) { | ||||
| 		formObj.bgcolor.value = st['background-color']; | ||||
| 		updateColor('bgcolor_pick','bgcolor'); | ||||
| 	} | ||||
|  | ||||
| 	if (st['border-color']) { | ||||
| 		formObj.bordercolor.value = st['border-color']; | ||||
| 		updateColor('bordercolor_pick','bordercolor'); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| tinyMCEPopup.onInit.add(init); | ||||
							
								
								
									
										27
									
								
								tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,27 @@ | ||||
| tinyMCEPopup.requireLangPack(); | ||||
|  | ||||
| var MergeCellsDialog = { | ||||
| 	init : function() { | ||||
| 		var f = document.forms[0]; | ||||
|  | ||||
| 		f.numcols.value = tinyMCEPopup.getWindowArg('cols', 1); | ||||
| 		f.numrows.value = tinyMCEPopup.getWindowArg('rows', 1); | ||||
| 	}, | ||||
|  | ||||
| 	merge : function() { | ||||
| 		var func, f = document.forms[0]; | ||||
|  | ||||
| 		tinyMCEPopup.restoreSelection(); | ||||
|  | ||||
| 		func = tinyMCEPopup.getWindowArg('onaction'); | ||||
|  | ||||
| 		func({ | ||||
| 			cols : f.numcols.value, | ||||
| 			rows : f.numrows.value | ||||
| 		}); | ||||
|  | ||||
| 		tinyMCEPopup.close(); | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| tinyMCEPopup.onInit.add(MergeCellsDialog.init, MergeCellsDialog); | ||||
							
								
								
									
										237
									
								
								tinymce/jscripts/tiny_mce/plugins/table/js/row.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										237
									
								
								tinymce/jscripts/tiny_mce/plugins/table/js/row.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,237 @@ | ||||
| tinyMCEPopup.requireLangPack(); | ||||
|  | ||||
| function init() { | ||||
| 	tinyMCEPopup.resizeToInnerSize(); | ||||
|  | ||||
| 	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); | ||||
| 	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); | ||||
|  | ||||
| 	var inst = tinyMCEPopup.editor; | ||||
| 	var dom = inst.dom; | ||||
| 	var trElm = dom.getParent(inst.selection.getStart(), "tr"); | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var st = dom.parseStyle(dom.getAttrib(trElm, "style")); | ||||
|  | ||||
| 	// Get table row data | ||||
| 	var rowtype = trElm.parentNode.nodeName.toLowerCase(); | ||||
| 	var align = dom.getAttrib(trElm, 'align'); | ||||
| 	var valign = dom.getAttrib(trElm, 'valign'); | ||||
| 	var height = trimSize(getStyle(trElm, 'height', 'height')); | ||||
| 	var className = dom.getAttrib(trElm, 'class'); | ||||
| 	var bgcolor = convertRGBToHex(getStyle(trElm, 'bgcolor', 'backgroundColor')); | ||||
| 	var backgroundimage = getStyle(trElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); | ||||
| 	var id = dom.getAttrib(trElm, 'id'); | ||||
| 	var lang = dom.getAttrib(trElm, 'lang'); | ||||
| 	var dir = dom.getAttrib(trElm, 'dir'); | ||||
|  | ||||
| 	selectByValue(formObj, 'rowtype', rowtype); | ||||
|  | ||||
| 	// Any cells selected | ||||
| 	if (dom.select('td.mceSelected,th.mceSelected', trElm).length == 0) { | ||||
| 		// Setup form | ||||
| 		addClassesToList('class', 'table_row_styles'); | ||||
| 		TinyMCE_EditableSelects.init(); | ||||
|  | ||||
| 		formObj.bgcolor.value = bgcolor; | ||||
| 		formObj.backgroundimage.value = backgroundimage; | ||||
| 		formObj.height.value = height; | ||||
| 		formObj.id.value = id; | ||||
| 		formObj.lang.value = lang; | ||||
| 		formObj.style.value = dom.serializeStyle(st); | ||||
| 		selectByValue(formObj, 'align', align); | ||||
| 		selectByValue(formObj, 'valign', valign); | ||||
| 		selectByValue(formObj, 'class', className, true, true); | ||||
| 		selectByValue(formObj, 'dir', dir); | ||||
|  | ||||
| 		// Resize some elements | ||||
| 		if (isVisible('backgroundimagebrowser')) | ||||
| 			document.getElementById('backgroundimage').style.width = '180px'; | ||||
|  | ||||
| 		updateColor('bgcolor_pick', 'bgcolor'); | ||||
| 	} else | ||||
| 		tinyMCEPopup.dom.hide('action'); | ||||
| } | ||||
|  | ||||
| function updateAction() { | ||||
| 	var inst = tinyMCEPopup.editor, dom = inst.dom, trElm, tableElm, formObj = document.forms[0]; | ||||
| 	var action = getSelectValue(formObj, 'action'); | ||||
|  | ||||
| 	tinyMCEPopup.restoreSelection(); | ||||
| 	trElm = dom.getParent(inst.selection.getStart(), "tr"); | ||||
| 	tableElm = dom.getParent(inst.selection.getStart(), "table"); | ||||
|  | ||||
| 	// Update all selected rows | ||||
| 	if (dom.select('td.mceSelected,th.mceSelected', trElm).length > 0) { | ||||
| 		tinymce.each(tableElm.rows, function(tr) { | ||||
| 			var i; | ||||
|  | ||||
| 			for (i = 0; i < tr.cells.length; i++) { | ||||
| 				if (dom.hasClass(tr.cells[i], 'mceSelected')) { | ||||
| 					updateRow(tr, true); | ||||
| 					return; | ||||
| 				} | ||||
| 			} | ||||
| 		}); | ||||
|  | ||||
| 		inst.addVisual(); | ||||
| 		inst.nodeChanged(); | ||||
| 		inst.execCommand('mceEndUndoLevel'); | ||||
| 		tinyMCEPopup.close(); | ||||
| 		return; | ||||
| 	} | ||||
|  | ||||
| 	inst.execCommand('mceBeginUndoLevel'); | ||||
|  | ||||
| 	switch (action) { | ||||
| 		case "row": | ||||
| 			updateRow(trElm); | ||||
| 			break; | ||||
|  | ||||
| 		case "all": | ||||
| 			var rows = tableElm.getElementsByTagName("tr"); | ||||
|  | ||||
| 			for (var i=0; i<rows.length; i++) | ||||
| 				updateRow(rows[i], true); | ||||
|  | ||||
| 			break; | ||||
|  | ||||
| 		case "odd": | ||||
| 		case "even": | ||||
| 			var rows = tableElm.getElementsByTagName("tr"); | ||||
|  | ||||
| 			for (var i=0; i<rows.length; i++) { | ||||
| 				if ((i % 2 == 0 && action == "odd") || (i % 2 != 0 && action == "even")) | ||||
| 					updateRow(rows[i], true, true); | ||||
| 			} | ||||
|  | ||||
| 			break; | ||||
| 	} | ||||
|  | ||||
| 	inst.addVisual(); | ||||
| 	inst.nodeChanged(); | ||||
| 	inst.execCommand('mceEndUndoLevel'); | ||||
| 	tinyMCEPopup.close(); | ||||
| } | ||||
|  | ||||
| function updateRow(tr_elm, skip_id, skip_parent) { | ||||
| 	var inst = tinyMCEPopup.editor; | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var dom = inst.dom; | ||||
| 	var curRowType = tr_elm.parentNode.nodeName.toLowerCase(); | ||||
| 	var rowtype = getSelectValue(formObj, 'rowtype'); | ||||
| 	var doc = inst.getDoc(); | ||||
|  | ||||
| 	// Update row element | ||||
| 	if (!skip_id) | ||||
| 		tr_elm.setAttribute('id', formObj.id.value); | ||||
|  | ||||
| 	tr_elm.setAttribute('align', getSelectValue(formObj, 'align')); | ||||
| 	tr_elm.setAttribute('vAlign', getSelectValue(formObj, 'valign')); | ||||
| 	tr_elm.setAttribute('lang', formObj.lang.value); | ||||
| 	tr_elm.setAttribute('dir', getSelectValue(formObj, 'dir')); | ||||
| 	tr_elm.setAttribute('style', dom.serializeStyle(dom.parseStyle(formObj.style.value))); | ||||
| 	dom.setAttrib(tr_elm, 'class', getSelectValue(formObj, 'class')); | ||||
|  | ||||
| 	// Clear deprecated attributes | ||||
| 	tr_elm.setAttribute('background', ''); | ||||
| 	tr_elm.setAttribute('bgColor', ''); | ||||
| 	tr_elm.setAttribute('height', ''); | ||||
|  | ||||
| 	// Set styles | ||||
| 	tr_elm.style.height = getCSSSize(formObj.height.value); | ||||
| 	tr_elm.style.backgroundColor = formObj.bgcolor.value; | ||||
|  | ||||
| 	if (formObj.backgroundimage.value != "") | ||||
| 		tr_elm.style.backgroundImage = "url('" + formObj.backgroundimage.value + "')"; | ||||
| 	else | ||||
| 		tr_elm.style.backgroundImage = ''; | ||||
|  | ||||
| 	// Setup new rowtype | ||||
| 	if (curRowType != rowtype && !skip_parent) { | ||||
| 		// first, clone the node we are working on | ||||
| 		var newRow = tr_elm.cloneNode(1); | ||||
|  | ||||
| 		// next, find the parent of its new destination (creating it if necessary) | ||||
| 		var theTable = dom.getParent(tr_elm, "table"); | ||||
| 		var dest = rowtype; | ||||
| 		var newParent = null; | ||||
| 		for (var i = 0; i < theTable.childNodes.length; i++) { | ||||
| 			if (theTable.childNodes[i].nodeName.toLowerCase() == dest) | ||||
| 				newParent = theTable.childNodes[i]; | ||||
| 		} | ||||
|  | ||||
| 		if (newParent == null) { | ||||
| 			newParent = doc.createElement(dest); | ||||
|  | ||||
| 			if (dest == "thead") { | ||||
| 				if (theTable.firstChild.nodeName == 'CAPTION') | ||||
| 					inst.dom.insertAfter(newParent, theTable.firstChild); | ||||
| 				else | ||||
| 					theTable.insertBefore(newParent, theTable.firstChild); | ||||
| 			} else | ||||
| 				theTable.appendChild(newParent); | ||||
| 		} | ||||
|  | ||||
| 		// append the row to the new parent | ||||
| 		newParent.appendChild(newRow); | ||||
|  | ||||
| 		// remove the original | ||||
| 		tr_elm.parentNode.removeChild(tr_elm); | ||||
|  | ||||
| 		// set tr_elm to the new node | ||||
| 		tr_elm = newRow; | ||||
| 	} | ||||
|  | ||||
| 	dom.setAttrib(tr_elm, 'style', dom.serializeStyle(dom.parseStyle(tr_elm.style.cssText))); | ||||
| } | ||||
|  | ||||
| function changedBackgroundImage() { | ||||
| 	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom; | ||||
| 	var st = dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	st['background-image'] = "url('" + formObj.backgroundimage.value + "')"; | ||||
|  | ||||
| 	formObj.style.value = dom.serializeStyle(st); | ||||
| } | ||||
|  | ||||
| function changedStyle() { | ||||
| 	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom; | ||||
| 	var st = dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	if (st['background-image']) | ||||
| 		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"); | ||||
| 	else | ||||
| 		formObj.backgroundimage.value = ''; | ||||
|  | ||||
| 	if (st['height']) | ||||
| 		formObj.height.value = trimSize(st['height']); | ||||
|  | ||||
| 	if (st['background-color']) { | ||||
| 		formObj.bgcolor.value = st['background-color']; | ||||
| 		updateColor('bgcolor_pick','bgcolor'); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| function changedSize() { | ||||
| 	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom; | ||||
| 	var st = dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	var height = formObj.height.value; | ||||
| 	if (height != "") | ||||
| 		st['height'] = getCSSSize(height); | ||||
| 	else | ||||
| 		st['height'] = ""; | ||||
|  | ||||
| 	formObj.style.value = dom.serializeStyle(st); | ||||
| } | ||||
|  | ||||
| function changedColor() { | ||||
| 	var formObj = document.forms[0], dom = tinyMCEPopup.editor.dom; | ||||
| 	var st = dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	st['background-color'] = formObj.bgcolor.value; | ||||
|  | ||||
| 	formObj.style.value = dom.serializeStyle(st); | ||||
| } | ||||
|  | ||||
| tinyMCEPopup.onInit.add(init); | ||||
							
								
								
									
										449
									
								
								tinymce/jscripts/tiny_mce/plugins/table/js/table.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										449
									
								
								tinymce/jscripts/tiny_mce/plugins/table/js/table.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,449 @@ | ||||
| tinyMCEPopup.requireLangPack(); | ||||
|  | ||||
| var action, orgTableWidth, orgTableHeight, dom = tinyMCEPopup.editor.dom; | ||||
|  | ||||
| function insertTable() { | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var inst = tinyMCEPopup.editor, dom = inst.dom; | ||||
| 	var cols = 2, rows = 2, border = 0, cellpadding = -1, cellspacing = -1, align, width, height, className, caption, frame, rules; | ||||
| 	var html = '', capEl, elm; | ||||
| 	var cellLimit, rowLimit, colLimit; | ||||
|  | ||||
| 	tinyMCEPopup.restoreSelection(); | ||||
|  | ||||
| 	if (!AutoValidator.validate(formObj)) { | ||||
| 		tinyMCEPopup.alert(inst.getLang('invalid_data')); | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
| 	elm = dom.getParent(inst.selection.getNode(), 'table'); | ||||
|  | ||||
| 	// Get form data | ||||
| 	cols = formObj.elements['cols'].value; | ||||
| 	rows = formObj.elements['rows'].value; | ||||
| 	border = formObj.elements['border'].value != "" ? formObj.elements['border'].value  : 0; | ||||
| 	cellpadding = formObj.elements['cellpadding'].value != "" ? formObj.elements['cellpadding'].value : ""; | ||||
| 	cellspacing = formObj.elements['cellspacing'].value != "" ? formObj.elements['cellspacing'].value : ""; | ||||
| 	align = getSelectValue(formObj, "align"); | ||||
| 	frame = getSelectValue(formObj, "tframe"); | ||||
| 	rules = getSelectValue(formObj, "rules"); | ||||
| 	width = formObj.elements['width'].value; | ||||
| 	height = formObj.elements['height'].value; | ||||
| 	bordercolor = formObj.elements['bordercolor'].value; | ||||
| 	bgcolor = formObj.elements['bgcolor'].value; | ||||
| 	className = getSelectValue(formObj, "class"); | ||||
| 	id = formObj.elements['id'].value; | ||||
| 	summary = formObj.elements['summary'].value; | ||||
| 	style = formObj.elements['style'].value; | ||||
| 	dir = formObj.elements['dir'].value; | ||||
| 	lang = formObj.elements['lang'].value; | ||||
| 	background = formObj.elements['backgroundimage'].value; | ||||
| 	caption = formObj.elements['caption'].checked; | ||||
|  | ||||
| 	cellLimit = tinyMCEPopup.getParam('table_cell_limit', false); | ||||
| 	rowLimit = tinyMCEPopup.getParam('table_row_limit', false); | ||||
| 	colLimit = tinyMCEPopup.getParam('table_col_limit', false); | ||||
|  | ||||
| 	// Validate table size | ||||
| 	if (colLimit && cols > colLimit) { | ||||
| 		tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit)); | ||||
| 		return false; | ||||
| 	} else if (rowLimit && rows > rowLimit) { | ||||
| 		tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit)); | ||||
| 		return false; | ||||
| 	} else if (cellLimit && cols * rows > cellLimit) { | ||||
| 		tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit)); | ||||
| 		return false; | ||||
| 	} | ||||
|  | ||||
| 	// Update table | ||||
| 	if (action == "update") { | ||||
| 		inst.execCommand('mceBeginUndoLevel'); | ||||
|  | ||||
| 		dom.setAttrib(elm, 'cellPadding', cellpadding, true); | ||||
| 		dom.setAttrib(elm, 'cellSpacing', cellspacing, true); | ||||
| 		dom.setAttrib(elm, 'border', border); | ||||
| 		dom.setAttrib(elm, 'align', align); | ||||
| 		dom.setAttrib(elm, 'frame', frame); | ||||
| 		dom.setAttrib(elm, 'rules', rules); | ||||
| 		dom.setAttrib(elm, 'class', className); | ||||
| 		dom.setAttrib(elm, 'style', style); | ||||
| 		dom.setAttrib(elm, 'id', id); | ||||
| 		dom.setAttrib(elm, 'summary', summary); | ||||
| 		dom.setAttrib(elm, 'dir', dir); | ||||
| 		dom.setAttrib(elm, 'lang', lang); | ||||
|  | ||||
| 		capEl = inst.dom.select('caption', elm)[0]; | ||||
|  | ||||
| 		if (capEl && !caption) | ||||
| 			capEl.parentNode.removeChild(capEl); | ||||
|  | ||||
| 		if (!capEl && caption) { | ||||
| 			capEl = elm.ownerDocument.createElement('caption'); | ||||
|  | ||||
| 			if (!tinymce.isIE) | ||||
| 				capEl.innerHTML = '<br _mce_bogus="1"/>'; | ||||
|  | ||||
| 			elm.insertBefore(capEl, elm.firstChild); | ||||
| 		} | ||||
|  | ||||
| 		if (width && inst.settings.inline_styles) { | ||||
| 			dom.setStyle(elm, 'width', width); | ||||
| 			dom.setAttrib(elm, 'width', ''); | ||||
| 		} else { | ||||
| 			dom.setAttrib(elm, 'width', width, true); | ||||
| 			dom.setStyle(elm, 'width', ''); | ||||
| 		} | ||||
|  | ||||
| 		// Remove these since they are not valid XHTML | ||||
| 		dom.setAttrib(elm, 'borderColor', ''); | ||||
| 		dom.setAttrib(elm, 'bgColor', ''); | ||||
| 		dom.setAttrib(elm, 'background', ''); | ||||
|  | ||||
| 		if (height && inst.settings.inline_styles) { | ||||
| 			dom.setStyle(elm, 'height', height); | ||||
| 			dom.setAttrib(elm, 'height', ''); | ||||
| 		} else { | ||||
| 			dom.setAttrib(elm, 'height', height, true); | ||||
| 			dom.setStyle(elm, 'height', ''); | ||||
|  		} | ||||
|  | ||||
| 		if (background != '') | ||||
| 			elm.style.backgroundImage = "url('" + background + "')"; | ||||
| 		else | ||||
| 			elm.style.backgroundImage = ''; | ||||
|  | ||||
| /*		if (tinyMCEPopup.getParam("inline_styles")) { | ||||
| 			if (width != '') | ||||
| 				elm.style.width = getCSSSize(width); | ||||
| 		}*/ | ||||
|  | ||||
| 		if (bordercolor != "") { | ||||
| 			elm.style.borderColor = bordercolor; | ||||
| 			elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle; | ||||
| 			elm.style.borderWidth = border == "" ? "1px" : border; | ||||
| 		} else | ||||
| 			elm.style.borderColor = ''; | ||||
|  | ||||
| 		elm.style.backgroundColor = bgcolor; | ||||
| 		elm.style.height = getCSSSize(height); | ||||
|  | ||||
| 		inst.addVisual(); | ||||
|  | ||||
| 		// Fix for stange MSIE align bug | ||||
| 		//elm.outerHTML = elm.outerHTML; | ||||
|  | ||||
| 		inst.nodeChanged(); | ||||
| 		inst.execCommand('mceEndUndoLevel'); | ||||
|  | ||||
| 		// Repaint if dimensions changed | ||||
| 		if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight) | ||||
| 			inst.execCommand('mceRepaint'); | ||||
|  | ||||
| 		tinyMCEPopup.close(); | ||||
| 		return true; | ||||
| 	} | ||||
|  | ||||
| 	// Create new table | ||||
| 	html += '<table'; | ||||
|  | ||||
| 	html += makeAttrib('id', id); | ||||
| 	html += makeAttrib('border', border); | ||||
| 	html += makeAttrib('cellpadding', cellpadding); | ||||
| 	html += makeAttrib('cellspacing', cellspacing); | ||||
| 	html += makeAttrib('_mce_new', '1'); | ||||
|  | ||||
| 	if (width && inst.settings.inline_styles) { | ||||
| 		if (style) | ||||
| 			style += '; '; | ||||
|  | ||||
| 		// Force px | ||||
| 		if (/^[0-9\.]+$/.test(width)) | ||||
| 			width += 'px'; | ||||
|  | ||||
| 		style += 'width: ' + width; | ||||
| 	} else | ||||
| 		html += makeAttrib('width', width); | ||||
|  | ||||
| /*	if (height) { | ||||
| 		if (style) | ||||
| 			style += '; '; | ||||
|  | ||||
| 		style += 'height: ' + height; | ||||
| 	}*/ | ||||
|  | ||||
| 	//html += makeAttrib('height', height); | ||||
| 	//html += makeAttrib('bordercolor', bordercolor); | ||||
| 	//html += makeAttrib('bgcolor', bgcolor); | ||||
| 	html += makeAttrib('align', align); | ||||
| 	html += makeAttrib('frame', frame); | ||||
| 	html += makeAttrib('rules', rules); | ||||
| 	html += makeAttrib('class', className); | ||||
| 	html += makeAttrib('style', style); | ||||
| 	html += makeAttrib('summary', summary); | ||||
| 	html += makeAttrib('dir', dir); | ||||
| 	html += makeAttrib('lang', lang); | ||||
| 	html += '>'; | ||||
|  | ||||
| 	if (caption) { | ||||
| 		if (!tinymce.isIE) | ||||
| 			html += '<caption><br _mce_bogus="1"/></caption>'; | ||||
| 		else | ||||
| 			html += '<caption></caption>'; | ||||
| 	} | ||||
|  | ||||
| 	for (var y=0; y<rows; y++) { | ||||
| 		html += "<tr>"; | ||||
|  | ||||
| 		for (var x=0; x<cols; x++) { | ||||
| 			if (!tinymce.isIE) | ||||
| 				html += '<td><br _mce_bogus="1"/></td>'; | ||||
| 			else | ||||
| 				html += '<td></td>'; | ||||
| 		} | ||||
|  | ||||
| 		html += "</tr>"; | ||||
| 	} | ||||
|  | ||||
| 	html += "</table>"; | ||||
|  | ||||
| 	inst.execCommand('mceBeginUndoLevel'); | ||||
|  | ||||
| 	// Move table | ||||
| 	if (inst.settings.fix_table_elements) { | ||||
| 		var patt = ''; | ||||
|  | ||||
| 		inst.focus(); | ||||
| 		inst.selection.setContent('<br class="_mce_marker" />'); | ||||
|  | ||||
| 		tinymce.each('h1,h2,h3,h4,h5,h6,p'.split(','), function(n) { | ||||
| 			if (patt) | ||||
| 				patt += ','; | ||||
|  | ||||
| 			patt += n + ' ._mce_marker'; | ||||
| 		}); | ||||
|  | ||||
| 		tinymce.each(inst.dom.select(patt), function(n) { | ||||
| 			inst.dom.split(inst.dom.getParent(n, 'h1,h2,h3,h4,h5,h6,p'), n); | ||||
| 		}); | ||||
|  | ||||
| 		dom.setOuterHTML(dom.select('br._mce_marker')[0], html); | ||||
| 	} else | ||||
| 		inst.execCommand('mceInsertContent', false, html); | ||||
|  | ||||
| 	tinymce.each(dom.select('table[_mce_new]'), function(node) { | ||||
| 		var td = dom.select('td', node); | ||||
|  | ||||
| 		inst.selection.select(td[0], true); | ||||
| 		inst.selection.collapse(); | ||||
|  | ||||
| 		dom.setAttrib(node, '_mce_new', ''); | ||||
| 	}); | ||||
|  | ||||
| 	inst.addVisual(); | ||||
| 	inst.execCommand('mceEndUndoLevel'); | ||||
|  | ||||
| 	tinyMCEPopup.close(); | ||||
| } | ||||
|  | ||||
| function makeAttrib(attrib, value) { | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var valueElm = formObj.elements[attrib]; | ||||
|  | ||||
| 	if (typeof(value) == "undefined" || value == null) { | ||||
| 		value = ""; | ||||
|  | ||||
| 		if (valueElm) | ||||
| 			value = valueElm.value; | ||||
| 	} | ||||
|  | ||||
| 	if (value == "") | ||||
| 		return ""; | ||||
|  | ||||
| 	// XML encode it | ||||
| 	value = value.replace(/&/g, '&'); | ||||
| 	value = value.replace(/\"/g, '"'); | ||||
| 	value = value.replace(/</g, '<'); | ||||
| 	value = value.replace(/>/g, '>'); | ||||
|  | ||||
| 	return ' ' + attrib + '="' + value + '"'; | ||||
| } | ||||
|  | ||||
| function init() { | ||||
| 	tinyMCEPopup.resizeToInnerSize(); | ||||
|  | ||||
| 	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); | ||||
| 	document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table'); | ||||
| 	document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor'); | ||||
| 	document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor'); | ||||
|  | ||||
| 	var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', ''); | ||||
| 	var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = ""; | ||||
| 	var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules, frame; | ||||
| 	var inst = tinyMCEPopup.editor, dom = inst.dom; | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var elm = dom.getParent(inst.selection.getNode(), "table"); | ||||
|  | ||||
| 	action = tinyMCEPopup.getWindowArg('action'); | ||||
|  | ||||
| 	if (!action) | ||||
| 		action = elm ? "update" : "insert"; | ||||
|  | ||||
| 	if (elm && action != "insert") { | ||||
| 		var rowsAr = elm.rows; | ||||
| 		var cols = 0; | ||||
| 		for (var i=0; i<rowsAr.length; i++) | ||||
| 			if (rowsAr[i].cells.length > cols) | ||||
| 				cols = rowsAr[i].cells.length; | ||||
|  | ||||
| 		cols = cols; | ||||
| 		rows = rowsAr.length; | ||||
|  | ||||
| 		st = dom.parseStyle(dom.getAttrib(elm, "style")); | ||||
| 		border = trimSize(getStyle(elm, 'border', 'borderWidth')); | ||||
| 		cellpadding = dom.getAttrib(elm, 'cellpadding', ""); | ||||
| 		cellspacing = dom.getAttrib(elm, 'cellspacing', ""); | ||||
| 		width = trimSize(getStyle(elm, 'width', 'width')); | ||||
| 		height = trimSize(getStyle(elm, 'height', 'height')); | ||||
| 		bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor')); | ||||
| 		bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor')); | ||||
| 		align = dom.getAttrib(elm, 'align', align); | ||||
| 		frame = dom.getAttrib(elm, 'frame'); | ||||
| 		rules = dom.getAttrib(elm, 'rules'); | ||||
| 		className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, '')); | ||||
| 		id = dom.getAttrib(elm, 'id'); | ||||
| 		summary = dom.getAttrib(elm, 'summary'); | ||||
| 		style = dom.serializeStyle(st); | ||||
| 		dir = dom.getAttrib(elm, 'dir'); | ||||
| 		lang = dom.getAttrib(elm, 'lang'); | ||||
| 		background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); | ||||
| 		formObj.caption.checked = elm.getElementsByTagName('caption').length > 0; | ||||
|  | ||||
| 		orgTableWidth = width; | ||||
| 		orgTableHeight = height; | ||||
|  | ||||
| 		action = "update"; | ||||
| 		formObj.insert.value = inst.getLang('update'); | ||||
| 	} | ||||
|  | ||||
| 	addClassesToList('class', "table_styles"); | ||||
| 	TinyMCE_EditableSelects.init(); | ||||
|  | ||||
| 	// Update form | ||||
| 	selectByValue(formObj, 'align', align); | ||||
| 	selectByValue(formObj, 'tframe', frame); | ||||
| 	selectByValue(formObj, 'rules', rules); | ||||
| 	selectByValue(formObj, 'class', className, true, true); | ||||
| 	formObj.cols.value = cols; | ||||
| 	formObj.rows.value = rows; | ||||
| 	formObj.border.value = border; | ||||
| 	formObj.cellpadding.value = cellpadding; | ||||
| 	formObj.cellspacing.value = cellspacing; | ||||
| 	formObj.width.value = width; | ||||
| 	formObj.height.value = height; | ||||
| 	formObj.bordercolor.value = bordercolor; | ||||
| 	formObj.bgcolor.value = bgcolor; | ||||
| 	formObj.id.value = id; | ||||
| 	formObj.summary.value = summary; | ||||
| 	formObj.style.value = style; | ||||
| 	formObj.dir.value = dir; | ||||
| 	formObj.lang.value = lang; | ||||
| 	formObj.backgroundimage.value = background; | ||||
|  | ||||
| 	updateColor('bordercolor_pick', 'bordercolor'); | ||||
| 	updateColor('bgcolor_pick', 'bgcolor'); | ||||
|  | ||||
| 	// Resize some elements | ||||
| 	if (isVisible('backgroundimagebrowser')) | ||||
| 		document.getElementById('backgroundimage').style.width = '180px'; | ||||
|  | ||||
| 	// Disable some fields in update mode | ||||
| 	if (action == "update") { | ||||
| 		formObj.cols.disabled = true; | ||||
| 		formObj.rows.disabled = true; | ||||
| 	} | ||||
| } | ||||
|  | ||||
| function changedSize() { | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var st = dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| /*	var width = formObj.width.value; | ||||
| 	if (width != "") | ||||
| 		st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : ""; | ||||
| 	else | ||||
| 		st['width'] = "";*/ | ||||
|  | ||||
| 	var height = formObj.height.value; | ||||
| 	if (height != "") | ||||
| 		st['height'] = getCSSSize(height); | ||||
| 	else | ||||
| 		st['height'] = ""; | ||||
|  | ||||
| 	formObj.style.value = dom.serializeStyle(st); | ||||
| } | ||||
|  | ||||
| function changedBackgroundImage() { | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var st = dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	st['background-image'] = "url('" + formObj.backgroundimage.value + "')"; | ||||
|  | ||||
| 	formObj.style.value = dom.serializeStyle(st); | ||||
| } | ||||
|  | ||||
| function changedBorder() { | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var st = dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	// Update border width if the element has a color | ||||
| 	if (formObj.border.value != "" && formObj.bordercolor.value != "") | ||||
| 		st['border-width'] = formObj.border.value + "px"; | ||||
|  | ||||
| 	formObj.style.value = dom.serializeStyle(st); | ||||
| } | ||||
|  | ||||
| function changedColor() { | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var st = dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	st['background-color'] = formObj.bgcolor.value; | ||||
|  | ||||
| 	if (formObj.bordercolor.value != "") { | ||||
| 		st['border-color'] = formObj.bordercolor.value; | ||||
|  | ||||
| 		// Add border-width if it's missing | ||||
| 		if (!st['border-width']) | ||||
| 			st['border-width'] = formObj.border.value == "" ? "1px" : formObj.border.value + "px"; | ||||
| 	} | ||||
|  | ||||
| 	formObj.style.value = dom.serializeStyle(st); | ||||
| } | ||||
|  | ||||
| function changedStyle() { | ||||
| 	var formObj = document.forms[0]; | ||||
| 	var st = dom.parseStyle(formObj.style.value); | ||||
|  | ||||
| 	if (st['background-image']) | ||||
| 		formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1"); | ||||
| 	else | ||||
| 		formObj.backgroundimage.value = ''; | ||||
|  | ||||
| 	if (st['width']) | ||||
| 		formObj.width.value = trimSize(st['width']); | ||||
|  | ||||
| 	if (st['height']) | ||||
| 		formObj.height.value = trimSize(st['height']); | ||||
|  | ||||
| 	if (st['background-color']) { | ||||
| 		formObj.bgcolor.value = st['background-color']; | ||||
| 		updateColor('bgcolor_pick','bgcolor'); | ||||
| 	} | ||||
|  | ||||
| 	if (st['border-color']) { | ||||
| 		formObj.bordercolor.value = st['border-color']; | ||||
| 		updateColor('bordercolor_pick','bordercolor'); | ||||
| 	} | ||||
| } | ||||
|  | ||||
| tinyMCEPopup.onInit.add(init); | ||||
							
								
								
									
										74
									
								
								tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										74
									
								
								tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,74 @@ | ||||
| tinyMCE.addI18n('en.table_dlg',{ | ||||
| general_tab:"General", | ||||
| advanced_tab:"Advanced", | ||||
| general_props:"General properties", | ||||
| advanced_props:"Advanced properties", | ||||
| rowtype:"Row in table part", | ||||
| title:"Insert/Modify table", | ||||
| width:"Width", | ||||
| height:"Height", | ||||
| cols:"Cols", | ||||
| rows:"Rows", | ||||
| cellspacing:"Cellspacing", | ||||
| cellpadding:"Cellpadding", | ||||
| border:"Border", | ||||
| align:"Alignment", | ||||
| align_default:"Default", | ||||
| align_left:"Left", | ||||
| align_right:"Right", | ||||
| align_middle:"Center", | ||||
| row_title:"Table row properties", | ||||
| cell_title:"Table cell properties", | ||||
| cell_type:"Cell type", | ||||
| valign:"Vertical alignment", | ||||
| align_top:"Top", | ||||
| align_bottom:"Bottom", | ||||
| bordercolor:"Border color", | ||||
| bgcolor:"Background color", | ||||
| merge_cells_title:"Merge table cells", | ||||
| id:"Id", | ||||
| style:"Style", | ||||
| langdir:"Language direction", | ||||
| langcode:"Language code", | ||||
| mime:"Target MIME type", | ||||
| ltr:"Left to right", | ||||
| rtl:"Right to left", | ||||
| bgimage:"Background image", | ||||
| summary:"Summary", | ||||
| td:"Data", | ||||
| th:"Header", | ||||
| cell_cell:"Update current cell", | ||||
| cell_row:"Update all cells in row", | ||||
| cell_all:"Update all cells in table", | ||||
| row_row:"Update current row", | ||||
| row_odd:"Update odd rows in table", | ||||
| row_even:"Update even rows in table", | ||||
| row_all:"Update all rows in table", | ||||
| thead:"Table Head", | ||||
| tbody:"Table Body", | ||||
| tfoot:"Table Foot", | ||||
| scope:"Scope", | ||||
| rowgroup:"Row Group", | ||||
| colgroup:"Col Group", | ||||
| col_limit:"You've exceeded the maximum number of columns of {$cols}.", | ||||
| row_limit:"You've exceeded the maximum number of rows of {$rows}.", | ||||
| cell_limit:"You've exceeded the maximum number of cells of {$cells}.", | ||||
| missing_scope:"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.", | ||||
| caption:"Table caption", | ||||
| frame:"Frame", | ||||
| frame_none:"none", | ||||
| frame_groups:"groups", | ||||
| frame_rows:"rows", | ||||
| frame_cols:"cols", | ||||
| frame_all:"all", | ||||
| rules:"Rules", | ||||
| rules_void:"void", | ||||
| rules_above:"above", | ||||
| rules_below:"below", | ||||
| rules_hsides:"hsides", | ||||
| rules_lhs:"lhs", | ||||
| rules_rhs:"rhs", | ||||
| rules_vsides:"vsides", | ||||
| rules_box:"box", | ||||
| rules_border:"border" | ||||
| }); | ||||
							
								
								
									
										32
									
								
								tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,32 @@ | ||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
| <head> | ||||
| 	<title>{#table_dlg.merge_cells_title}</title> | ||||
| 	<script type="text/javascript" src="../../tiny_mce_popup.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/mctabs.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/validate.js"></script> | ||||
| 	<script type="text/javascript" src="js/merge_cells.js"></script> | ||||
| </head> | ||||
| <body style="margin: 8px"> | ||||
| <form onsubmit="MergeCellsDialog.merge();return false;" action="#"> | ||||
| 	<fieldset> | ||||
| 		<legend>{#table_dlg.merge_cells_title}</legend> | ||||
| 		  <table border="0" cellpadding="0" cellspacing="3" width="100%"> | ||||
| 			  <tr> | ||||
| 				<td>{#table_dlg.cols}:</td> | ||||
| 				<td align="right"><input type="text" name="numcols" value="" class="number min1 mceFocus" style="width: 30px" /></td> | ||||
| 			  </tr> | ||||
| 			  <tr> | ||||
| 				<td>{#table_dlg.rows}:</td> | ||||
| 				<td align="right"><input type="text" name="numrows" value="" class="number min1" style="width: 30px" /></td> | ||||
| 			  </tr> | ||||
| 		  </table> | ||||
| 	</fieldset> | ||||
|  | ||||
| 	<div class="mceActionPanel"> | ||||
| 		<input type="submit" id="insert" name="insert" value="{#update}" /> | ||||
| 		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" /> | ||||
| 	</div> | ||||
| </form> | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										155
									
								
								tinymce/jscripts/tiny_mce/plugins/table/row.htm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										155
									
								
								tinymce/jscripts/tiny_mce/plugins/table/row.htm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,155 @@ | ||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
| <head> | ||||
| 	<title>{#table_dlg.row_title}</title> | ||||
| 	<script type="text/javascript" src="../../tiny_mce_popup.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/mctabs.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/form_utils.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/editable_selects.js"></script> | ||||
| 	<script type="text/javascript" src="js/row.js"></script> | ||||
| 	<link href="css/row.css" rel="stylesheet" type="text/css" /> | ||||
| </head> | ||||
| <body id="tablerow" style="display: none"> | ||||
| 	<form onsubmit="updateAction();return false;" action="#"> | ||||
| 		<div class="tabs"> | ||||
| 			<ul> | ||||
| 				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li> | ||||
| 				<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li> | ||||
| 			</ul> | ||||
| 		</div> | ||||
|  | ||||
| 		<div class="panel_wrapper"> | ||||
| 			<div id="general_panel" class="panel current"> | ||||
| 				<fieldset> | ||||
| 					<legend>{#table_dlg.general_props}</legend> | ||||
|  | ||||
| 					<table border="0" cellpadding="4" cellspacing="0"> | ||||
| 						<tr> | ||||
| 							<td><label for="rowtype">{#table_dlg.rowtype}</label></td> | ||||
| 							<td class="col2"> | ||||
| 								<select id="rowtype" name="rowtype" class="mceFocus"> | ||||
| 									<option value="thead">{#table_dlg.thead}</option> | ||||
| 									<option value="tbody">{#table_dlg.tbody}</option> | ||||
| 									<option value="tfoot">{#table_dlg.tfoot}</option> | ||||
| 								</select> | ||||
| 							</td> | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td><label for="align">{#table_dlg.align}</label></td> | ||||
| 							<td class="col2"> | ||||
| 								<select id="align" name="align"> | ||||
| 									<option value="">{#not_set}</option> | ||||
| 									<option value="center">{#table_dlg.align_middle}</option> | ||||
| 									<option value="left">{#table_dlg.align_left}</option> | ||||
| 									<option value="right">{#table_dlg.align_right}</option> | ||||
| 								</select> | ||||
| 							</td> | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td><label for="valign">{#table_dlg.valign}</label></td> | ||||
| 							<td class="col2"> | ||||
| 								<select id="valign" name="valign"> | ||||
| 									<option value="">{#not_set}</option> | ||||
| 									<option value="top">{#table_dlg.align_top}</option> | ||||
| 									<option value="middle">{#table_dlg.align_middle}</option> | ||||
| 									<option value="bottom">{#table_dlg.align_bottom}</option> | ||||
| 								</select> | ||||
| 							</td> | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr id="styleSelectRow"> | ||||
| 							<td><label for="class">{#class_name}</label></td> | ||||
| 							<td class="col2"> | ||||
| 								<select id="class" name="class" class="mceEditableSelect"> | ||||
| 									<option value="" selected="selected">{#not_set}</option> | ||||
| 								</select> | ||||
| 							</td> | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td><label for="height">{#table_dlg.height}</label></td> | ||||
| 							<td class="col2"><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" /></td> | ||||
| 						</tr> | ||||
| 					</table> | ||||
| 				</fieldset> | ||||
| 			</div> | ||||
|  | ||||
| 			<div id="advanced_panel" class="panel"> | ||||
| 				<fieldset> | ||||
| 					<legend>{#table_dlg.advanced_props}</legend> | ||||
|  | ||||
| 					<table border="0" cellpadding="0" cellspacing="4"> | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="id">{#table_dlg.id}</label></td>  | ||||
| 							<td><input id="id" name="id" type="text" value="" style="width: 200px" /></td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td><label for="style">{#table_dlg.style}</label></td> | ||||
| 							<td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td> | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="dir">{#table_dlg.langdir}</label></td>  | ||||
| 							<td> | ||||
| 								<select id="dir" name="dir" style="width: 200px">  | ||||
| 										<option value="">{#not_set}</option>  | ||||
| 										<option value="ltr">{#table_dlg.ltr}</option>  | ||||
| 										<option value="rtl">{#table_dlg.rtl}</option>  | ||||
| 								</select> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="lang">{#table_dlg.langcode}</label></td>  | ||||
| 							<td> | ||||
| 								<input id="lang" name="lang" type="text" value="" style="width: 200px" /> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td>  | ||||
| 							<td> | ||||
| 								<table border="0" cellpadding="0" cellspacing="0"> | ||||
| 									<tr> | ||||
| 										<td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td> | ||||
| 										<td id="backgroundimagebrowsercontainer"> </td> | ||||
| 									</tr> | ||||
| 								</table> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td>  | ||||
| 							<td> | ||||
| 								<table border="0" cellpadding="0" cellspacing="0"> | ||||
| 									<tr> | ||||
| 										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td> | ||||
| 										<td id="bgcolor_pickcontainer"> </td> | ||||
| 									</tr> | ||||
| 								</table> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
| 					</table> | ||||
| 				</fieldset> | ||||
| 			</div> | ||||
| 		</div> | ||||
|  | ||||
| 		<div class="mceActionPanel"> | ||||
| 			<div> | ||||
| 				<select id="action" name="action"> | ||||
| 					<option value="row">{#table_dlg.row_row}</option> | ||||
| 					<option value="odd">{#table_dlg.row_odd}</option> | ||||
| 					<option value="even">{#table_dlg.row_even}</option> | ||||
| 					<option value="all">{#table_dlg.row_all}</option> | ||||
| 				</select> | ||||
| 			</div> | ||||
|  | ||||
| 			<input type="submit" id="insert" name="insert" value="{#update}" /> | ||||
| 			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" /> | ||||
| 		</div> | ||||
| 	</form> | ||||
| </body> | ||||
| </html> | ||||
							
								
								
									
										187
									
								
								tinymce/jscripts/tiny_mce/plugins/table/table.htm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										187
									
								
								tinymce/jscripts/tiny_mce/plugins/table/table.htm
									
									
									
									
										vendored
									
									
										Normal file
									
								
							| @@ -0,0 +1,187 @@ | ||||
| <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> | ||||
| <html xmlns="http://www.w3.org/1999/xhtml"> | ||||
| <head> | ||||
| 	<title>{#table_dlg.title}</title> | ||||
| 	<script type="text/javascript" src="../../tiny_mce_popup.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/mctabs.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/form_utils.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/validate.js"></script> | ||||
| 	<script type="text/javascript" src="../../utils/editable_selects.js"></script> | ||||
| 	<script type="text/javascript" src="js/table.js"></script> | ||||
| 	<link href="css/table.css" rel="stylesheet" type="text/css" /> | ||||
| </head> | ||||
| <body id="table" style="display: none"> | ||||
| 	<form onsubmit="insertTable();return false;" action="#"> | ||||
| 		<div class="tabs"> | ||||
| 			<ul> | ||||
| 				<li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li> | ||||
| 				<li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li> | ||||
| 			</ul> | ||||
| 		</div> | ||||
|  | ||||
| 		<div class="panel_wrapper"> | ||||
| 			<div id="general_panel" class="panel current"> | ||||
| 				<fieldset> | ||||
| 					<legend>{#table_dlg.general_props}</legend> | ||||
| 					  <table border="0" cellpadding="4" cellspacing="0" width="100%"> | ||||
| 							  <tr> | ||||
| 								<td><label id="colslabel" for="cols">{#table_dlg.cols}</label></td> | ||||
| 								<td><input id="cols" name="cols" type="text" value="" size="3" maxlength="3" class="required number min1 mceFocus" /></td> | ||||
| 								<td><label id="rowslabel" for="rows">{#table_dlg.rows}</label></td> | ||||
| 								<td><input id="rows" name="rows" type="text" value="" size="3" maxlength="3" class="required number min1" /></td> | ||||
| 							  </tr> | ||||
| 							  <tr> | ||||
| 								<td><label id="cellpaddinglabel" for="cellpadding">{#table_dlg.cellpadding}</label></td> | ||||
| 								<td><input id="cellpadding" name="cellpadding" type="text" value="" size="3" maxlength="3" class="number" /></td> | ||||
| 								<td><label id="cellspacinglabel" for="cellspacing">{#table_dlg.cellspacing}</label></td> | ||||
| 								<td><input id="cellspacing" name="cellspacing" type="text" value="" size="3" maxlength="3" class="number" /></td> | ||||
| 							  </tr> | ||||
| 							  <tr> | ||||
| 								<td><label id="alignlabel" for="align">{#table_dlg.align}</label></td> | ||||
| 								<td><select id="align" name="align"> | ||||
| 									<option value="">{#not_set}</option> | ||||
| 									<option value="center">{#table_dlg.align_middle}</option> | ||||
| 									<option value="left">{#table_dlg.align_left}</option> | ||||
| 									<option value="right">{#table_dlg.align_right}</option> | ||||
| 								  </select></td> | ||||
| 								<td><label id="borderlabel" for="border">{#table_dlg.border}</label></td> | ||||
| 								<td><input id="border" name="border" type="text" value="" size="3" maxlength="3" onchange="changedBorder();" class="number" /></td> | ||||
| 							  </tr> | ||||
| 							  <tr id="width_row"> | ||||
| 								<td><label id="widthlabel" for="width">{#table_dlg.width}</label></td> | ||||
| 								<td><input name="width" type="text" id="width" value="" size="4" maxlength="4" onchange="changedSize();" class="size" /></td> | ||||
| 								<td><label id="heightlabel" for="height">{#table_dlg.height}</label></td> | ||||
| 								<td><input name="height" type="text" id="height" value="" size="4" maxlength="4" onchange="changedSize();" class="size" /></td> | ||||
| 							  </tr> | ||||
| 							  <tr id="styleSelectRow"> | ||||
| 								<td><label id="classlabel" for="class">{#class_name}</label></td> | ||||
| 								<td colspan="3"> | ||||
| 								 <select id="class" name="class" class="mceEditableSelect"> | ||||
| 									<option value="" selected="selected">{#not_set}</option> | ||||
| 								 </select></td> | ||||
| 							  </tr> | ||||
| 							  <tr> | ||||
| 								<td class="column1"><label for="caption">{#table_dlg.caption}</label></td>  | ||||
| 								<td><input id="caption" name="caption" type="checkbox" class="checkbox" value="true" /></td>  | ||||
| 							  </tr> | ||||
| 							</table> | ||||
| 				</fieldset> | ||||
| 			</div> | ||||
|  | ||||
| 			<div id="advanced_panel" class="panel"> | ||||
| 				<fieldset> | ||||
| 					<legend>{#table_dlg.advanced_props}</legend> | ||||
|  | ||||
| 					<table border="0" cellpadding="0" cellspacing="4"> | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="id">{#table_dlg.id}</label></td>  | ||||
| 							<td><input id="id" name="id" type="text" value="" class="advfield" /></td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="summary">{#table_dlg.summary}</label></td>  | ||||
| 							<td><input id="summary" name="summary" type="text" value="" class="advfield" /></td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td><label for="style">{#table_dlg.style}</label></td> | ||||
| 							<td><input type="text" id="style" name="style" value="" class="advfield" onchange="changedStyle();" /></td> | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label id="langlabel" for="lang">{#table_dlg.langcode}</label></td>  | ||||
| 							<td> | ||||
| 								<input id="lang" name="lang" type="text" value="" class="advfield" /> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td>  | ||||
| 							<td> | ||||
| 								<table border="0" cellpadding="0" cellspacing="0"> | ||||
| 									<tr> | ||||
| 										<td><input id="backgroundimage" name="backgroundimage" type="text" value="" class="advfield" onchange="changedBackgroundImage();" /></td> | ||||
| 										<td id="backgroundimagebrowsercontainer"> </td> | ||||
| 									</tr> | ||||
| 								</table> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="tframe">{#table_dlg.frame}</label></td>  | ||||
| 							<td> | ||||
| 								<select id="tframe" name="tframe" class="advfield">  | ||||
| 										<option value="">{#not_set}</option> | ||||
| 										<option value="void">{#table_dlg.rules_void}</option> | ||||
| 										<option value="above">{#table_dlg.rules_above}</option>  | ||||
| 										<option value="below">{#table_dlg.rules_below}</option>  | ||||
| 										<option value="hsides">{#table_dlg.rules_hsides}</option>  | ||||
| 										<option value="lhs">{#table_dlg.rules_lhs}</option>  | ||||
| 										<option value="rhs">{#table_dlg.rules_rhs}</option>  | ||||
| 										<option value="vsides">{#table_dlg.rules_vsides}</option>  | ||||
| 										<option value="box">{#table_dlg.rules_box}</option>  | ||||
| 										<option value="border">{#table_dlg.rules_border}</option>  | ||||
| 								</select> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="rules">{#table_dlg.rules}</label></td>  | ||||
| 							<td> | ||||
| 								<select id="rules" name="rules" class="advfield">  | ||||
| 										<option value="">{#not_set}</option>  | ||||
| 										<option value="none">{#table_dlg.frame_none}</option> | ||||
| 										<option value="groups">{#table_dlg.frame_groups}</option> | ||||
| 										<option value="rows">{#table_dlg.frame_rows}</option> | ||||
| 										<option value="cols">{#table_dlg.frame_cols}</option> | ||||
| 										<option value="all">{#table_dlg.frame_all}</option> | ||||
| 									</select> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="dir">{#table_dlg.langdir}</label></td>  | ||||
| 							<td> | ||||
| 								<select id="dir" name="dir" class="advfield">  | ||||
| 										<option value="">{#not_set}</option>  | ||||
| 										<option value="ltr">{#table_dlg.ltr}</option>  | ||||
| 										<option value="rtl">{#table_dlg.rtl}</option>  | ||||
| 								</select> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="bordercolor">{#table_dlg.bordercolor}</label></td>  | ||||
| 							<td> | ||||
| 								<table border="0" cellpadding="0" cellspacing="0"> | ||||
| 									<tr> | ||||
| 										<td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td> | ||||
| 										<td id="bordercolor_pickcontainer"> </td> | ||||
| 									</tr> | ||||
| 								</table> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
|  | ||||
| 						<tr> | ||||
| 							<td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td>  | ||||
| 							<td> | ||||
| 								<table border="0" cellpadding="0" cellspacing="0"> | ||||
| 									<tr> | ||||
| 										<td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td> | ||||
| 										<td id="bgcolor_pickcontainer"> </td> | ||||
| 									</tr> | ||||
| 								</table> | ||||
| 							</td>  | ||||
| 						</tr> | ||||
| 					</table> | ||||
| 				</fieldset> | ||||
| 			</div> | ||||
| 		</div> | ||||
|  | ||||
| 		<div class="mceActionPanel"> | ||||
| 			<input type="submit" id="insert" name="insert" value="{#insert}" /> | ||||
| 			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" /> | ||||
| 		</div> | ||||
| 	</form> | ||||
| </body> | ||||
| </html> | ||||
		Reference in New Issue
	
	Block a user