├── Assets └── MooEditable │ ├── Editable.css │ ├── MooEditable.Charmap.css │ ├── MooEditable.Extras.css │ ├── MooEditable.Flash.css │ ├── MooEditable.Forecolor.css │ ├── MooEditable.Image.css │ ├── MooEditable.Pagebreak.css │ ├── MooEditable.SilkTheme.css │ ├── MooEditable.Smiley.css │ ├── MooEditable.Table.css │ ├── MooEditable.css │ ├── Other │ ├── character.png │ ├── flash.png │ ├── hr.png │ ├── pagebreak.gif │ ├── pagebreak.png │ ├── removeformat.png │ ├── table-add.png │ ├── table-coladd.png │ ├── table-coldelete.png │ ├── table-coledit.png │ ├── table-colspan.png │ ├── table-colsplit.png │ ├── table-edit.png │ ├── table-rowadd.png │ ├── table-rowdelete.png │ ├── table-rowedit.png │ ├── table-rowspan.png │ └── table-rowsplit.png │ ├── README.md │ ├── Silk │ ├── anchor.png │ ├── bold.png │ ├── createlink.png │ ├── indent.png │ ├── insertorderedlist.png │ ├── insertunorderedlist.png │ ├── italic.png │ ├── justifycenter.png │ ├── justifyfull.png │ ├── justifyleft.png │ ├── justifyright.png │ ├── outdent.png │ ├── palette.png │ ├── picture.png │ ├── redo.png │ ├── strikethrough.png │ ├── toggleview.png │ ├── underline.png │ ├── undo.png │ └── unlink.png │ ├── Smiley │ ├── angryface.png │ ├── blush.png │ ├── gasp.png │ ├── grin.png │ ├── halo.png │ ├── lipsaresealed.png │ ├── smile.png │ ├── undecided.png │ └── wink.png │ ├── Tango │ ├── bold.png │ ├── createlink.png │ ├── indent.png │ ├── insertorderedlist.png │ ├── insertunorderedlist.png │ ├── italic.png │ ├── justifycenter.png │ ├── justifyfull.png │ ├── justifyleft.png │ ├── justifyright.png │ ├── outdent.png │ ├── redo.png │ ├── strikethrough.png │ ├── toggleview.png │ ├── underline.png │ ├── undo.png │ ├── unlink.png │ └── urlimage.png │ └── images │ ├── mooeditable-extras-toolbarbuttons-tango.png │ ├── mooeditable-toolbarbuttons-silk.png │ └── mooeditable-toolbarbuttons-tango.png ├── Demos ├── MooEditable │ ├── MooEditable.Charmap.html │ ├── MooEditable.CleanPaste.html │ ├── MooEditable.ExtendedLinksDialog.html │ ├── MooEditable.Extras.SilkTheme.html │ ├── MooEditable.Extras.html │ ├── MooEditable.Flash.html │ ├── MooEditable.Forecolor.html │ ├── MooEditable.Group.html │ ├── MooEditable.Image.html │ ├── MooEditable.Pagebreak.html │ ├── MooEditable.Smiley.html │ ├── MooEditable.Table.html │ ├── MooEditable.UI.ButtonOverlay.html │ ├── MooEditable.ajax-submit.html │ ├── MooEditable.attach-detach.html │ ├── MooEditable.custom-toolbarbuttons.html │ ├── MooEditable.html │ └── MooEditable.selection-api.html └── assets │ ├── mootools-more.js │ └── mootools.js ├── Docs ├── MooEditable │ ├── MooEditable.Extras.md │ ├── MooEditable.Group.md │ ├── MooEditable.UI.ButtonOverlay.md │ ├── MooEditable.UI.MenuList.md │ └── MooEditable.md ├── assets │ ├── ca.css │ ├── docs.css │ ├── docs.js │ ├── mootools.js │ ├── prettify.css │ ├── prettify.js │ └── showdown.js ├── index.html └── license.md ├── LICENSE ├── README.md ├── Source ├── Locale │ ├── Locale.de-DE.MooEditable.js │ ├── Locale.en-US.MooEditable.example.js │ ├── Locale.fr-FR.MooEditable.js │ ├── Locale.it-IT.MooEditable.js │ ├── Locale.nl.MooEditable.js │ ├── Locale.pt-BR.MooEditable.js │ ├── Locale.zh_CN.MooEditable.js │ └── README.md ├── MooEditable │ ├── MooEditable.Charmap.js │ ├── MooEditable.CleanPaste.js │ ├── MooEditable.Extras.js │ ├── MooEditable.Flash.js │ ├── MooEditable.Forecolor.js │ ├── MooEditable.Group.js │ ├── MooEditable.Image.js │ ├── MooEditable.Pagebreak.js │ ├── MooEditable.Smiley.js │ ├── MooEditable.Table.js │ ├── MooEditable.UI.ButtonOverlay.js │ ├── MooEditable.UI.ExtendedLinksDialog.js │ ├── MooEditable.UI.MenuList.js │ └── MooEditable.js └── scripts.json └── package.yml /Assets/MooEditable/Editable.css: -------------------------------------------------------------------------------- 1 | table { border: 1px dashed #BBBBBB; font:inherit; } 2 | table td, table th { border: 1px dashed #BBBBBB; } 3 | table th { font-weight:bold ; } 4 | object { display:block; border: 1px dashed gray; background: url(Other/flash.png) no-repeat center center; } 5 | -------------------------------------------------------------------------------- /Assets/MooEditable/MooEditable.Charmap.css: -------------------------------------------------------------------------------- 1 | 2 | .mooeditable-ui-toolbar .charmap-item .button-icon { 3 | background: transparent url(Other/character.png) no-repeat center center; 4 | } -------------------------------------------------------------------------------- /Assets/MooEditable/MooEditable.Extras.css: -------------------------------------------------------------------------------- 1 | .mooeditable-ui-toolbar .justifycenter-item .button-icon, 2 | .mooeditable-ui-toolbar .justifyright-item .button-icon, 3 | .mooeditable-ui-toolbar .justifyfull-item .button-icon, 4 | .mooeditable-ui-toolbar .justifyleft-item .button-icon{ 5 | background-image: url(images/mooeditable-extras-toolbarbuttons-tango.png); 6 | } 7 | 8 | .mooeditable-ui-toolbar .justifycenter-item .button-icon{ background-position: 0 0; } 9 | .mooeditable-ui-toolbar .justifyfull-item .button-icon{ background-position: 0 -16px; } 10 | .mooeditable-ui-toolbar .justifyleft-item .button-icon{ background-position: 0 -32px; } 11 | .mooeditable-ui-toolbar .justifyright-item .button-icon{ background-position: 0 -48px; } 12 | 13 | .mooeditable-ui-toolbar .removeformat-item .button-icon { background: transparent url(Other/removeformat.png) no-repeat center center; } 14 | .mooeditable-ui-toolbar .insertHorizontalRule-item .button-icon { background: transparent url(Other/hr.png) no-repeat center center; } 15 | -------------------------------------------------------------------------------- /Assets/MooEditable/MooEditable.Flash.css: -------------------------------------------------------------------------------- 1 | 2 | .mooeditable-ui-toolbar .flash-item .button-icon { 3 | background: transparent url(Other/flash.png) no-repeat center center; 4 | } 5 | -------------------------------------------------------------------------------- /Assets/MooEditable/MooEditable.Forecolor.css: -------------------------------------------------------------------------------- 1 | .mooeditable-ui-toolbar .forecolor-item .button-icon{ 2 | background: transparent url(images/mooeditable-toolbarbuttons-silk.png) no-repeat top left; 3 | background-position: 0 -192px; 4 | } 5 | 6 | .forecolor-overlay .overlay-content{ 7 | padding: 4px 0 0 4px; 8 | } 9 | 10 | .forecolor-overlay .forecolor-colorpicker-color{ 11 | line-height: 0; 12 | overflow: hidden; 13 | height: 12px; 14 | width: 12px; 15 | float: left; 16 | margin: 0 4px 4px 0; 17 | border: 1px solid #fff; 18 | border-radius: 2px; 19 | -webkit-border-radius: 2px; 20 | -moz-border-radius: 2px; 21 | } 22 | 23 | .forecolor-overlay .forecolor-colorpicker-color:hover{ 24 | border-color: #000; 25 | } 26 | 27 | .forecolor-overlay .forecolor-colorpicker-br{ 28 | display: block; 29 | clear: left; 30 | } -------------------------------------------------------------------------------- /Assets/MooEditable/MooEditable.Image.css: -------------------------------------------------------------------------------- 1 | 2 | .mooeditable-ui-toolbar .image-item .button-icon{ background-position: 0 -208px; } 3 | -------------------------------------------------------------------------------- /Assets/MooEditable/MooEditable.Pagebreak.css: -------------------------------------------------------------------------------- 1 | 2 | .mooeditable-ui-toolbar .pagebreak-item .button-icon { 3 | background: transparent url(Other/pagebreak.png) no-repeat center center; 4 | } -------------------------------------------------------------------------------- /Assets/MooEditable/MooEditable.SilkTheme.css: -------------------------------------------------------------------------------- 1 | /* 2 | A change to the original MooEditable style 3 | 4 | * Famfamfam Silk Iconset 5 | * Darker gray color for mouse over selections 6 | * Rounded corners for buttons and overlays (only supported on WebKit and FireFox) 7 | 8 | Usage: 9 | Include MooEditable.SilkTheme.css to overwrite the default settings 10 | 11 | 12 | 13 | 14 | 15 | 16 | Author: Olivier Refalo 17 | */ 18 | 19 | 20 | .mooeditable-ui-toolbar .mooeditable-ui-button .button-icon{ 21 | background: transparent url(images/mooeditable-toolbarbuttons-silk.png) no-repeat 0 -8px; 22 | } 23 | 24 | .mooeditable-ui-toolbar .bold-item .button-icon{ background-position: 0 -16px; } 25 | .mooeditable-ui-toolbar .createlink-item .button-icon{ background-position: 0 -32px; } 26 | .mooeditable-ui-toolbar .indent-item .button-icon{ background-position: 0 -48px; } 27 | .mooeditable-ui-toolbar .insertorderedlist-item .button-icon{ background-position: 0 -64px; } 28 | .mooeditable-ui-toolbar .insertunorderedlist-item .button-icon{ background-position: 0 -80px; } 29 | .mooeditable-ui-toolbar .italic-item .button-icon{ background-position: 0 -96px; } 30 | .mooeditable-ui-toolbar .outdent-item .button-icon{ background-position: 0 -176px; } 31 | .mooeditable-ui-toolbar .redo-item .button-icon{ background-position: 0 -208px; } 32 | .mooeditable-ui-toolbar .strikethrough-item .button-icon{ background-position: 0 -224px; } 33 | .mooeditable-ui-toolbar .toggleview-item .button-icon{ background-position: 0 -240px; } 34 | .mooeditable-ui-toolbar .underline-item .button-icon{ background-position: 0 -256px; } 35 | .mooeditable-ui-toolbar .undo-item .button-icon{ background-position: 0 -272px; } 36 | .mooeditable-ui-toolbar .unlink-item .button-icon{ background-position: 0 -288px; } 37 | .mooeditable-ui-toolbar .urlimage-item .button-icon{ background-position: 0 -304px; } 38 | .mooeditable-ui-toolbar .forecolor-item .button-icon{background-position: 0 -192px;} 39 | .mooeditable-ui-toolbar .smiley-item .button-icon{ 40 | background: transparent url(Smiley/smile.png) no-repeat top left; 41 | } 42 | 43 | .mooeditable-ui-toolbar .justifycenter-item .button-icon, 44 | .mooeditable-ui-toolbar .justifyright-item .button-icon, 45 | .mooeditable-ui-toolbar .justifyfull-item .button-icon, 46 | .mooeditable-ui-toolbar .justifyleft-item .button-icon{ 47 | background-image: url(images/mooeditable-toolbarbuttons-silk.png); 48 | } 49 | .mooeditable-ui-toolbar .justifycenter-item .button-icon{ background-position: 0 -112px; } 50 | .mooeditable-ui-toolbar .justifyfull-item .button-icon{ background-position: 0 -128px; } 51 | .mooeditable-ui-toolbar .justifyleft-item .button-icon{ background-position: 0 -144px; } 52 | .mooeditable-ui-toolbar .justifyright-item .button-icon{ background-position: 0 -160px; } 53 | 54 | .mooeditable-ui-toolbar .mooeditable-ui-button:hover, 55 | .mooeditable-ui-toolbar .mooeditable-ui-button.hover{ 56 | -webkit-border-radius: 3px; 57 | -moz-border-radius: 3px; 58 | border-radius: 3px; 59 | } 60 | 61 | .mooeditable-ui-button-overlay{ 62 | -webkit-border-radius: 5px; 63 | -moz-border-radius: 5px; 64 | border-radius: 5px; 65 | } 66 | 67 | .mooeditable-ui-toolbar .mooeditable-ui-button.active, 68 | .mooeditable-ui-toolbar .mooeditable-ui-button.onActive{ 69 | background-color: #bbb; 70 | -webkit-border-radius: 3px; 71 | -moz-border-radius: 3px; 72 | border-radius: 3px; 73 | } 74 | -------------------------------------------------------------------------------- /Assets/MooEditable/MooEditable.Smiley.css: -------------------------------------------------------------------------------- 1 | .mooeditable-ui-toolbar .smiley-item .button-icon { 2 | background: transparent url(Smiley/smile.png) no-repeat top left; 3 | } 4 | 5 | .smiley-overlay{ 6 | line-height: 1em; 7 | } 8 | 9 | .smiley-overlay .smiley-image{ 10 | margin: 2px; 11 | cursor: pointer; 12 | } -------------------------------------------------------------------------------- /Assets/MooEditable/MooEditable.Table.css: -------------------------------------------------------------------------------- 1 | 2 | .mooeditable-ui-toolbar .tableadd-item .button-icon { 3 | background: transparent url(Other/table-add.png) no-repeat center center; 4 | } 5 | 6 | .mooeditable-ui-toolbar .tableedit-item .button-icon { 7 | background: transparent url(Other/table-edit.png) no-repeat center center; 8 | } 9 | 10 | .mooeditable-ui-toolbar .tablerowadd-item .button-icon { 11 | background: transparent url(Other/table-rowadd.png) no-repeat center center; 12 | } 13 | 14 | .mooeditable-ui-toolbar .tablerowedit-item .button-icon { 15 | background: transparent url(Other/table-rowedit.png) no-repeat center center; 16 | } 17 | 18 | .mooeditable-ui-toolbar .tablerowspan-item .button-icon { 19 | background: transparent url(Other/table-rowspan.png) no-repeat center center; 20 | } 21 | 22 | .mooeditable-ui-toolbar .tablerowsplit-item .button-icon { 23 | background: transparent url(Other/table-rowsplit.png) no-repeat center center; 24 | } 25 | 26 | .mooeditable-ui-toolbar .tablerowspan-item .button-icon { 27 | background: transparent url(Other/table-rowspan.png) no-repeat center center; 28 | } 29 | 30 | .mooeditable-ui-toolbar .tablerowdelete-item .button-icon { 31 | background: transparent url(Other/table-rowdelete.png) no-repeat center center; 32 | } 33 | 34 | .mooeditable-ui-toolbar .tablecoladd-item .button-icon { 35 | background: transparent url(Other/table-coladd.png) no-repeat center center; 36 | } 37 | 38 | .mooeditable-ui-toolbar .tablecoledit-item .button-icon { 39 | background: transparent url(Other/table-coledit.png) no-repeat center center; 40 | } 41 | 42 | .mooeditable-ui-toolbar .tablecolspan-item .button-icon { 43 | background: transparent url(Other/table-colspan.png) no-repeat center center; 44 | } 45 | 46 | .mooeditable-ui-toolbar .tablecolsplit-item .button-icon { 47 | background: transparent url(Other/table-colsplit.png) no-repeat center center; 48 | } 49 | 50 | .mooeditable-ui-toolbar .tablecoldelete-item .button-icon { 51 | background: transparent url(Other/table-coldelete.png) no-repeat center center; 52 | } 53 | -------------------------------------------------------------------------------- /Assets/MooEditable/MooEditable.css: -------------------------------------------------------------------------------- 1 | .mooeditable-container{ 2 | position: relative; 3 | border: 2px solid #ddd; 4 | } 5 | 6 | .mooeditable-ui-toolbar{ 7 | color: inherit; 8 | background-color: #eee; 9 | padding: 2px; 10 | } 11 | 12 | .mooeditable-ui-toolbar:after{ 13 | content: "."; 14 | display: block; 15 | height: 0; 16 | clear: both; 17 | visibility: hidden; 18 | } 19 | 20 | .mooeditable-ui-toolbar .toolbar-item, 21 | .mooeditable-ui-toolbar .toolbar-separator{ 22 | display: -moz-inline-box; 23 | display: inline-block; 24 | vertical-align: middle; 25 | } 26 | 27 | .mooeditable-ui-toolbar .mooeditable-ui-button{ 28 | cursor: pointer; 29 | border: 0; 30 | width: auto; 31 | height: auto; 32 | margin: 2px; 33 | padding: 2px; 34 | vertical-align: middle; 35 | color: inherit; 36 | background-color: transparent; 37 | } 38 | * html .mooeditable-ui-toolbar .mooeditable-ui-button{ /* IE6 */ 39 | width: 24px; 40 | overflow: visible; 41 | padding: 2px 4px; 42 | } 43 | *:first-child+html .mooeditable-ui-toolbar .mooeditable-ui-button{ /* IE7 */ 44 | min-width: 24px; 45 | overflow: visible; 46 | padding: 2px 4px; 47 | } 48 | 49 | .mooeditable-ui-toolbar .mooeditable-ui-button.active, 50 | .mooeditable-ui-toolbar .mooeditable-ui-button.onActive{ 51 | color: inherit; 52 | background-color: #ddd; 53 | } 54 | 55 | .mooeditable-ui-toolbar .mooeditable-ui-button:hover, 56 | .mooeditable-ui-toolbar .mooeditable-ui-button.hover{ 57 | color: inherit; 58 | background-color: #fff; 59 | } 60 | 61 | .mooeditable-ui-toolbar .mooeditable-ui-button.disabled{ 62 | cursor: default; 63 | } 64 | 65 | .mooeditable-ui-toolbar .mooeditable-ui-button.disabled:hover{ 66 | color: inherit; 67 | background-color: transparent; 68 | } 69 | 70 | .mooeditable-ui-toolbar .mooeditable-ui-button .button-icon{ 71 | display: -moz-inline-box; 72 | display: inline-block; 73 | width: 16px; 74 | height: 16px; 75 | vertical-align: middle; 76 | color: inherit; 77 | background: transparent url(images/mooeditable-toolbarbuttons-tango.png) no-repeat 0 -8px; 78 | } 79 | 80 | .mooeditable-ui-toolbar .mooeditable-ui-button .button-text{ 81 | display: none; 82 | font-size: 13px; 83 | vertical-align: middle; 84 | } 85 | 86 | .mooeditable-ui-toolbar .mooeditable-ui-button-text .button-icon{ 87 | display: none; 88 | } 89 | .mooeditable-ui-toolbar .mooeditable-ui-button-text .button-text{ 90 | display: inline; 91 | } 92 | 93 | .mooeditable-ui-toolbar .mooeditable-ui-button-icon-text{ 94 | width: auto; 95 | } 96 | .mooeditable-ui-toolbar .mooeditable-ui-button-icon-text .button-text{ 97 | display: inline; 98 | margin-left: 4px; 99 | } 100 | 101 | .mooeditable-ui-toolbar .toolbar-separator{ 102 | width: 1px; 103 | height: 24px; 104 | margin: 2px; 105 | text-indent: -999em; 106 | color: inherit; 107 | background-color: #fafafa; 108 | } 109 | 110 | .mooeditable-ui-toolbar .bold-item .button-icon{ background-position: 0 0; } 111 | .mooeditable-ui-toolbar .createlink-item .button-icon{ background-position: 0 -16px; } 112 | .mooeditable-ui-toolbar .indent-item .button-icon{ background-position: 0 -32px; } 113 | .mooeditable-ui-toolbar .insertorderedlist-item .button-icon{ background-position: 0 -48px; } 114 | .mooeditable-ui-toolbar .insertunorderedlist-item .button-icon{ background-position: 0 -64px; } 115 | .mooeditable-ui-toolbar .italic-item .button-icon{ background-position: 0 -80px; } 116 | .mooeditable-ui-toolbar .outdent-item .button-icon{ background-position: 0 -96px; } 117 | .mooeditable-ui-toolbar .redo-item .button-icon{ background-position: 0 -112px; } 118 | .mooeditable-ui-toolbar .strikethrough-item .button-icon{ background-position: 0 -128px; } 119 | .mooeditable-ui-toolbar .toggleview-item .button-icon{ background-position: 0 -144px; } 120 | .mooeditable-ui-toolbar .underline-item .button-icon{ background-position: 0 -160px; } 121 | .mooeditable-ui-toolbar .undo-item .button-icon{ background-position: 0 -176px; } 122 | .mooeditable-ui-toolbar .unlink-item .button-icon{ background-position: 0 -192px; } 123 | .mooeditable-ui-toolbar .urlimage-item .button-icon{ background-position: 0 -208px; } 124 | 125 | .mooeditable-iframe{ 126 | margin: 0; 127 | padding: 0; 128 | border: 0; 129 | width: 100%; 130 | vertical-align: top; 131 | } 132 | 133 | .mooeditable-textarea{ 134 | margin: 0 !important; 135 | padding: 0 !important; 136 | border: 0 !important; 137 | width: 100% !important; 138 | resize: none !important; /* disable resizable textareas in Webkit */ 139 | outline: 0 !important; /* disable focus ring in Safari */ 140 | } 141 | 142 | .mooeditable-ui-dialog{ 143 | color: inherit; 144 | background-color: #ddd; 145 | position: absolute; 146 | display: block; 147 | cursor: default; 148 | font-size: 12px; 149 | z-index: 100; 150 | width: 100%; 151 | } 152 | 153 | .mooeditable-ui-dialog .dialog-content{ 154 | padding: 4px 10px; 155 | } 156 | 157 | .mooeditable-ui-dialog .dialog-content *{ 158 | vertical-align: middle; 159 | } 160 | 161 | .mooeditable-ui-dialog input{ 162 | margin: 0 8px; 163 | } 164 | 165 | .mooeditable-ui-dialog input.text{ 166 | width: 300px; 167 | } 168 | 169 | .mooeditable-ui-button-overlay{ 170 | color: inherit; 171 | background-color: #ddd; 172 | font-size: 12px; 173 | z-index: 100; 174 | outline: 0; 175 | -moz-outline: 0; 176 | -webkit-outline: 0; 177 | } 178 | 179 | .mooeditable-ui-button-overlay .overlay-content{ 180 | padding: 10px; 181 | } -------------------------------------------------------------------------------- /Assets/MooEditable/Other/character.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/character.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/flash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/flash.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/hr.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/hr.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/pagebreak.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/pagebreak.gif -------------------------------------------------------------------------------- /Assets/MooEditable/Other/pagebreak.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/pagebreak.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/removeformat.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/removeformat.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-add.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-coladd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-coladd.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-coldelete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-coldelete.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-coledit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-coledit.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-colspan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-colspan.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-colsplit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-colsplit.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-edit.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-rowadd.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-rowadd.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-rowdelete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-rowdelete.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-rowedit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-rowedit.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-rowspan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-rowspan.png -------------------------------------------------------------------------------- /Assets/MooEditable/Other/table-rowsplit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Other/table-rowsplit.png -------------------------------------------------------------------------------- /Assets/MooEditable/README.md: -------------------------------------------------------------------------------- 1 | MooEditable images 2 | ================== 3 | 4 | The toolbar button image is generated via the [CSS Sprite Generator](http://spritegen.website-performance.org/), with custom settings of 'Horizontal Offset: 0.0px' and 'Vertical Offset: 0.0px'. The image is then manually converted from True Color to 256 with transparency. 5 | 6 | Tango icons from the [Tango Desktop Project](http://tango.freedesktop.org/). Additional Tango icons from Jimmacs' [Tango OpenOffice](http://www.gnome-look.org/content/show.php/Tango+OpenOffice?content=54799) 7 | 8 | Silk icons are created by Mark James from [famfamfam.com](http://www.famfamfam.com/lab/icons/silk/). -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/anchor.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/bold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/bold.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/createlink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/createlink.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/indent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/indent.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/insertorderedlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/insertorderedlist.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/insertunorderedlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/insertunorderedlist.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/italic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/italic.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/justifycenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/justifycenter.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/justifyfull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/justifyfull.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/justifyleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/justifyleft.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/justifyright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/justifyright.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/outdent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/outdent.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/palette.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/palette.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/picture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/picture.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/redo.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/strikethrough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/strikethrough.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/toggleview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/toggleview.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/underline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/underline.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/undo.png -------------------------------------------------------------------------------- /Assets/MooEditable/Silk/unlink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Silk/unlink.png -------------------------------------------------------------------------------- /Assets/MooEditable/Smiley/angryface.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Smiley/angryface.png -------------------------------------------------------------------------------- /Assets/MooEditable/Smiley/blush.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Smiley/blush.png -------------------------------------------------------------------------------- /Assets/MooEditable/Smiley/gasp.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Smiley/gasp.png -------------------------------------------------------------------------------- /Assets/MooEditable/Smiley/grin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Smiley/grin.png -------------------------------------------------------------------------------- /Assets/MooEditable/Smiley/halo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Smiley/halo.png -------------------------------------------------------------------------------- /Assets/MooEditable/Smiley/lipsaresealed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Smiley/lipsaresealed.png -------------------------------------------------------------------------------- /Assets/MooEditable/Smiley/smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Smiley/smile.png -------------------------------------------------------------------------------- /Assets/MooEditable/Smiley/undecided.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Smiley/undecided.png -------------------------------------------------------------------------------- /Assets/MooEditable/Smiley/wink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Smiley/wink.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/bold.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/bold.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/createlink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/createlink.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/indent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/indent.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/insertorderedlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/insertorderedlist.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/insertunorderedlist.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/insertunorderedlist.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/italic.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/italic.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/justifycenter.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/justifycenter.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/justifyfull.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/justifyfull.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/justifyleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/justifyleft.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/justifyright.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/justifyright.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/outdent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/outdent.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/redo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/redo.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/strikethrough.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/strikethrough.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/toggleview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/toggleview.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/underline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/underline.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/undo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/undo.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/unlink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/unlink.png -------------------------------------------------------------------------------- /Assets/MooEditable/Tango/urlimage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/Tango/urlimage.png -------------------------------------------------------------------------------- /Assets/MooEditable/images/mooeditable-extras-toolbarbuttons-tango.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/images/mooeditable-extras-toolbarbuttons-tango.png -------------------------------------------------------------------------------- /Assets/MooEditable/images/mooeditable-toolbarbuttons-silk.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/images/mooeditable-toolbarbuttons-silk.png -------------------------------------------------------------------------------- /Assets/MooEditable/images/mooeditable-toolbarbuttons-tango.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/cheeaun/mooeditable/eb5defe51c50609e60964d3c1441e0d2a1c39954/Assets/MooEditable/images/mooeditable-toolbarbuttons-tango.png -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.Charmap.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable charmap example 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 40 | 41 | 42 | 43 | 44 |

MooEditable charmap example

45 | 46 |
47 | 48 | 49 | 52 | 53 | 54 | 55 |
56 | 57 |
58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.CleanPaste.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable clean paste (aka "paste from Word") example 6 | 7 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 43 | 44 | 45 | 46 | 47 |

MooEditable clean paste (aka "paste from Word") example

48 | 49 |
50 | 51 | 52 |
53 |

Lorem ipsum dolor sit amet

54 |

Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua.

55 |
56 | 57 | 58 | 59 | 60 | 61 | 62 |
63 | 64 |
65 | 66 | 67 | 68 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.ExtendedLinksDialog.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable extended links dialog example 6 | 7 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 46 | 47 | 48 | 49 | 50 |

MooEditable extended links dialog example

51 | 52 |
53 | 54 | 55 | 58 | 59 | 60 | 61 |
62 | 63 | 64 | 65 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.Extras.SilkTheme.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable example with extra toolbar items 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 41 | 42 | 43 | 44 | 45 |

MooEditable example with extra toolbar items

46 | 47 |
48 | 49 | 50 | 53 | 54 | 55 | 56 |
57 | 58 |
59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.Extras.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable example with extra toolbar items 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 40 | 41 | 42 | 43 | 44 |

MooEditable example with extra toolbar items

45 | 46 |
47 | 48 | 49 | 52 | 53 | 54 | 55 |
56 | 57 |
58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.Flash.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable basic example 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 40 | 41 | 42 | 43 | 44 |

MooEditable basic example

45 | 46 |
47 | 48 | 49 | 52 | 53 | 54 | 55 |
56 | 57 |
58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.Forecolor.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable example with an example Button Overlay 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 41 | 42 | 43 | 44 | 45 |

MooEditable example with an example Button Overlay

46 | 47 |
48 | 49 | 50 | 53 | 54 | 55 | 56 |
57 | 58 |
59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.Group.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable shared toolbar example 6 | 7 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 45 | 46 | 47 | 48 | 49 |

MooEditable basic example

50 | 51 |
52 | 53 |
54 | 55 | 56 | 59 | 60 | 61 | 64 | 65 | 66 | 67 |
68 | 69 |
70 | 71 | 72 | 73 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.Image.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable basic example 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 39 | 40 | 41 | 42 | 43 |

MooEditable basic example

44 | 45 |
46 | 47 | 48 | 51 | 52 | 53 | 54 |
55 | 56 |
57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.Pagebreak.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable pagebreak example 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 40 | 41 | 42 | 43 | 44 |

MooEditable pagebreak example

45 | 46 |
47 | 48 | 49 | 52 | 53 | 54 | 55 |
56 | 57 |
58 | 59 | 60 | 61 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.Smiley.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable example with an example Button Overlay 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 41 | 42 | 43 | 44 | 45 |

MooEditable example with an example Button Overlay

46 | 47 |
48 | 49 | 50 | 53 | 54 | 55 | 56 |
57 | 58 |
59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.Table.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable example with Table button 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 40 | 41 | 42 | 43 |

MooEditable example with Table button

44 | 45 |
46 | 47 | 48 | 51 | 52 | 53 | 54 |
55 | 56 |
57 | 58 | 59 | 60 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.UI.ButtonOverlay.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable example with an example Button Overlay 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 76 | 77 | 78 | 79 | 80 |

MooEditable example with an example Button Overlay

81 | 82 |
83 | 84 | 85 | 88 | 89 | 90 | 91 |
92 | 93 |
94 | 95 | 96 | 97 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.ajax-submit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable example with AJAX submit 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 45 | 46 | 47 | 48 | 49 |

MooEditable example with AJAX submit

50 | 51 |
52 | 53 | 54 | 57 | 58 | 59 | 60 | 61 | 62 |
63 | 64 | 65 | 66 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.attach-detach.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable example with API demonstration 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 |

MooEditable example with attach/detach functions

35 | 36 | 37 | 40 | 41 |

42 | 43 | 44 |

45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.custom-toolbarbuttons.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable example with customized toolbar buttons 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 37 | 38 | 39 | 40 | 41 |

MooEditable example with customized toolbar buttons

42 | 43 |
44 | 45 | 46 | 49 | 50 | 51 | 52 |
53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable basic example 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 35 | 36 | 37 | 38 | 39 |

MooEditable basic example

40 | 41 |
42 | 43 | 44 | 47 | 48 | 49 | 50 |
51 | 52 |
53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /Demos/MooEditable/MooEditable.selection-api.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | MooEditable example with API demonstration 6 | 7 | 19 | 20 | 21 | 22 | 23 | 24 | 30 | 31 | 32 | 33 | 34 |

MooEditable example with API demonstration

35 | 36 | 37 | 40 | 41 |

42 | · 43 | · 44 | · 45 | · 46 | · 47 | · 48 | 49 |

50 | 51 | 52 | 53 | -------------------------------------------------------------------------------- /Demos/assets/mootools-more.js: -------------------------------------------------------------------------------- 1 | // MooTools: the javascript framework. 2 | // Load this file's selection again by visiting: http://mootools.net/more/23afa4dbecfd2d93d7cf27a52b9b86fc 3 | // Or build this file again with packager using: packager build More/Class.Refactor More/URI 4 | /* 5 | --- 6 | 7 | script: More.js 8 | 9 | name: More 10 | 11 | description: MooTools More 12 | 13 | license: MIT-style license 14 | 15 | authors: 16 | - Guillermo Rauch 17 | - Thomas Aylott 18 | - Scott Kyle 19 | - Arian Stolwijk 20 | - Tim Wienk 21 | - Christoph Pojer 22 | - Aaron Newton 23 | 24 | requires: 25 | - Core/MooTools 26 | 27 | provides: [MooTools.More] 28 | 29 | ... 30 | */ 31 | 32 | MooTools.More = { 33 | 'version': '1.3.0.1', 34 | 'build': '6dce99bed2792dffcbbbb4ddc15a1fb9a41994b5' 35 | }; 36 | 37 | 38 | /* 39 | --- 40 | 41 | script: Class.Refactor.js 42 | 43 | name: Class.Refactor 44 | 45 | description: Extends a class onto itself with new property, preserving any items attached to the class's namespace. 46 | 47 | license: MIT-style license 48 | 49 | authors: 50 | - Aaron Newton 51 | 52 | requires: 53 | - Core/Class 54 | - /MooTools.More 55 | 56 | # Some modules declare themselves dependent on Class.Refactor 57 | provides: [Class.refactor, Class.Refactor] 58 | 59 | ... 60 | */ 61 | 62 | Class.refactor = function(original, refactors){ 63 | 64 | Object.each(refactors, function(item, name){ 65 | var origin = original.prototype[name]; 66 | if (origin && origin.$origin) origin = origin.$origin; 67 | if (origin && typeof item == 'function'){ 68 | original.implement(name, function(){ 69 | var old = this.previous; 70 | this.previous = origin; 71 | var value = item.apply(this, arguments); 72 | this.previous = old; 73 | return value; 74 | }); 75 | } else { 76 | original.implement(name, item); 77 | } 78 | }); 79 | 80 | return original; 81 | 82 | }; 83 | 84 | 85 | /* 86 | --- 87 | 88 | script: String.QueryString.js 89 | 90 | name: String.QueryString 91 | 92 | description: Methods for dealing with URI query strings. 93 | 94 | license: MIT-style license 95 | 96 | authors: 97 | - Sebastian Markbåge 98 | - Aaron Newton 99 | - Lennart Pilon 100 | - Valerio Proietti 101 | 102 | requires: 103 | - Core/Array 104 | - Core/String 105 | - /MooTools.More 106 | 107 | provides: [String.QueryString] 108 | 109 | ... 110 | */ 111 | 112 | String.implement({ 113 | 114 | parseQueryString: function(decodeKeys, decodeValues){ 115 | if (decodeKeys == null) decodeKeys = true; 116 | if (decodeValues == null) decodeValues = true; 117 | 118 | var vars = this.split(/[&;]/), 119 | object = {}; 120 | if (!vars.length) return object; 121 | 122 | vars.each(function(val){ 123 | var index = val.indexOf('='), 124 | value = val.substr(index + 1), 125 | keys = index < 0 ? [''] : val.substr(0, index).match(/([^\]\[]+|(\B)(?=\]))/g), 126 | obj = object; 127 | 128 | if (decodeValues) value = decodeURIComponent(value); 129 | keys.each(function(key, i){ 130 | if (decodeKeys) key = decodeURIComponent(key); 131 | var current = obj[key]; 132 | 133 | if (i < keys.length - 1) obj = obj[key] = current || {}; 134 | else if (typeOf(current) == 'array') current.push(value); 135 | else obj[key] = current != null ? [current, value] : value; 136 | }); 137 | }); 138 | 139 | return object; 140 | }, 141 | 142 | cleanQueryString: function(method){ 143 | return this.split('&').filter(function(val){ 144 | var index = val.indexOf('='), 145 | key = index < 0 ? '' : val.substr(0, index), 146 | value = val.substr(index + 1); 147 | 148 | return method ? method.call(null, key, value) : (value || value === 0); 149 | }).join('&'); 150 | } 151 | 152 | }); 153 | 154 | 155 | /* 156 | --- 157 | 158 | script: URI.js 159 | 160 | name: URI 161 | 162 | description: Provides methods useful in managing the window location and uris. 163 | 164 | license: MIT-style license 165 | 166 | authors: 167 | - Sebastian Markbåge 168 | - Aaron Newton 169 | 170 | requires: 171 | - Core/Object 172 | - Core/Class 173 | - Core/Class.Extras 174 | - Core/Element 175 | - /String.QueryString 176 | 177 | provides: [URI] 178 | 179 | ... 180 | */ 181 | 182 | (function(){ 183 | 184 | var toString = function(){ 185 | return this.get('value'); 186 | }; 187 | 188 | var URI = this.URI = new Class({ 189 | 190 | Implements: Options, 191 | 192 | options: { 193 | /*base: false*/ 194 | }, 195 | 196 | regex: /^(?:(\w+):)?(?:\/\/(?:(?:([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)?(\.\.?$|(?:[^?#\/]*\/)*)([^?#]*)(?:\?([^#]*))?(?:#(.*))?/, 197 | parts: ['scheme', 'user', 'password', 'host', 'port', 'directory', 'file', 'query', 'fragment'], 198 | schemes: {http: 80, https: 443, ftp: 21, rtsp: 554, mms: 1755, file: 0}, 199 | 200 | initialize: function(uri, options){ 201 | this.setOptions(options); 202 | var base = this.options.base || URI.base; 203 | if (!uri) uri = base; 204 | 205 | if (uri && uri.parsed) this.parsed = Object.clone(uri.parsed); 206 | else this.set('value', uri.href || uri.toString(), base ? new URI(base) : false); 207 | }, 208 | 209 | parse: function(value, base){ 210 | var bits = value.match(this.regex); 211 | if (!bits) return false; 212 | bits.shift(); 213 | return this.merge(bits.associate(this.parts), base); 214 | }, 215 | 216 | merge: function(bits, base){ 217 | if ((!bits || !bits.scheme) && (!base || !base.scheme)) return false; 218 | if (base){ 219 | this.parts.every(function(part){ 220 | if (bits[part]) return false; 221 | bits[part] = base[part] || ''; 222 | return true; 223 | }); 224 | } 225 | bits.port = bits.port || this.schemes[bits.scheme.toLowerCase()]; 226 | bits.directory = bits.directory ? this.parseDirectory(bits.directory, base ? base.directory : '') : '/'; 227 | return bits; 228 | }, 229 | 230 | parseDirectory: function(directory, baseDirectory){ 231 | directory = (directory.substr(0, 1) == '/' ? '' : (baseDirectory || '/')) + directory; 232 | if (!directory.test(URI.regs.directoryDot)) return directory; 233 | var result = []; 234 | directory.replace(URI.regs.endSlash, '').split('/').each(function(dir){ 235 | if (dir == '..' && result.length > 0) result.pop(); 236 | else if (dir != '.') result.push(dir); 237 | }); 238 | return result.join('/') + '/'; 239 | }, 240 | 241 | combine: function(bits){ 242 | return bits.value || bits.scheme + '://' + 243 | (bits.user ? bits.user + (bits.password ? ':' + bits.password : '') + '@' : '') + 244 | (bits.host || '') + (bits.port && bits.port != this.schemes[bits.scheme] ? ':' + bits.port : '') + 245 | (bits.directory || '/') + (bits.file || '') + 246 | (bits.query ? '?' + bits.query : '') + 247 | (bits.fragment ? '#' + bits.fragment : ''); 248 | }, 249 | 250 | set: function(part, value, base){ 251 | if (part == 'value'){ 252 | var scheme = value.match(URI.regs.scheme); 253 | if (scheme) scheme = scheme[1]; 254 | if (scheme && this.schemes[scheme.toLowerCase()] == null) this.parsed = { scheme: scheme, value: value }; 255 | else this.parsed = this.parse(value, (base || this).parsed) || (scheme ? { scheme: scheme, value: value } : { value: value }); 256 | } else if (part == 'data'){ 257 | this.setData(value); 258 | } else { 259 | this.parsed[part] = value; 260 | } 261 | return this; 262 | }, 263 | 264 | get: function(part, base){ 265 | switch(part){ 266 | case 'value': return this.combine(this.parsed, base ? base.parsed : false); 267 | case 'data' : return this.getData(); 268 | } 269 | return this.parsed[part] || ''; 270 | }, 271 | 272 | go: function(){ 273 | document.location.href = this.toString(); 274 | }, 275 | 276 | toURI: function(){ 277 | return this; 278 | }, 279 | 280 | getData: function(key, part){ 281 | var qs = this.get(part || 'query'); 282 | if (!(qs || qs === 0)) return key ? null : {}; 283 | var obj = qs.parseQueryString(); 284 | return key ? obj[key] : obj; 285 | }, 286 | 287 | setData: function(values, merge, part){ 288 | if (typeof values == 'string'){ 289 | var data = this.getData(); 290 | data[arguments[0]] = arguments[1]; 291 | values = data; 292 | } else if (merge){ 293 | values = Object.merge(this.getData(), values); 294 | } 295 | return this.set(part || 'query', Object.toQueryString(values)); 296 | }, 297 | 298 | clearData: function(part){ 299 | return this.set(part || 'query', ''); 300 | }, 301 | 302 | toString: toString, 303 | valueOf: toString 304 | 305 | }); 306 | 307 | URI.regs = { 308 | endSlash: /\/$/, 309 | scheme: /^(\w+):/, 310 | directoryDot: /\.\/|\.$/ 311 | }; 312 | 313 | URI.base = new URI(Array.from(document.getElements('base[href]', true)).getLast(), {base: document.location}); 314 | 315 | String.implement({ 316 | 317 | toURI: function(options){ 318 | return new URI(this, options); 319 | } 320 | 321 | }); 322 | 323 | })(); 324 | 325 | -------------------------------------------------------------------------------- /Docs/MooEditable/MooEditable.Extras.md: -------------------------------------------------------------------------------- 1 | Hash: MooEditable.Actions {#MooEditable-Actions} 2 | ================================================ 3 | 4 | This Hash contains the objects that specifies additional 'actions' for the editor. The list of actions are: 5 | 6 | * formatBlock 7 | * justifyleft 8 | * justifyright 9 | * justifycenter 10 | * justifyfull 11 | -------------------------------------------------------------------------------- /Docs/MooEditable/MooEditable.Group.md: -------------------------------------------------------------------------------- 1 | Class: MooEditable.Group {#MooEditable-Group} 2 | ============================================= 3 | 4 | An extension to the base MooEditable class for having multiple MooEditable instances on a page controlled by one toolbar. 5 | 6 | ### Implements: 7 | 8 | [Options][] 9 | 10 | 11 | MooEditable.Group Method: constructor {#MooEditable-Group:constructor} 12 | ---------------------------------------------------------------------- 13 | 14 | ### Syntax: 15 | 16 | var myMooEditableGroupInstance = new MooEditable.Group([options]); 17 | 18 | ### Arguments: 19 | 20 | 1. options - (*object*, optional) The options object. Options from [MooEditable][] can be applied as well. 21 | 22 | ### Options: 23 | 24 | * actions - (*string*: defaults to a string shown below) A string indicating the toolbar items and their arrangement (space-separated). 25 | 26 | 'bold italic underline strikethrough | insertunorderedlist insertorderedlist indent outdent | undo redo | createlink unlink, | urlimage | toggleview' 27 | 28 | 29 | 30 | MooEditable.Group Method: add {#MooEditable-Group:add} 31 | ------------------------------------------------------ 32 | 33 | Adds a textarea to be instantiated as a MooEditable.Group.Item object. 34 | 35 | ### Syntax: 36 | 37 | myMooEditable.add(textarea); 38 | 39 | ### Arguments: 40 | 41 | 1. textarea - (*mixed*) A string of the id for an Element or an Element reference of the textarea this editor modifies. 42 | 43 | ### Returns: 44 | 45 | * (*object*) The MooEditable.Group.Item instance. 46 | 47 | 48 | 49 | Class: MooEditable.Group.Item {#MooEditable-Group-Item} 50 | ======================================================= 51 | 52 | Wrapped MooEditable for the MooEditable.Group class. 53 | 54 | ### Extends: 55 | 56 | [MooEditable][] 57 | 58 | 59 | MooEditable.Group.Item Method: constructor {#MooEditable-Group-Item:constructor} 60 | -------------------------------------------------------------------------------- 61 | 62 | ### Syntax: 63 | 64 | var myMooEditableGroupItemInstance = new MooEditable.Group.Item(textarea, group[, options]); 65 | 66 | ### Arguments: 67 | 68 | 1. textarea - (*mixed*) A string of the id for an Element or an Element reference of the textarea this editor modifies. 69 | 2. group - (*object*) A [MooEditable.Group](#MooEditable-Group) object. 70 | 3. options - (*object*, optional) The options object. See [MooEditable][]. 71 | 72 | 73 | 74 | [Options]: http://mootools.net/docs/Class/Class.Extras#Options 75 | [MooEditable]: /MooEditable/MooEditable -------------------------------------------------------------------------------- /Docs/MooEditable/MooEditable.UI.ButtonOverlay.md: -------------------------------------------------------------------------------- 1 | Class: MooEditable.UI.ButtonOverlay {#MooEditable-UI-ButtonOverlay} 2 | =================================================================== 3 | 4 | UI Class to create a button element with a popup overlay. 5 | 6 | ### Extends: 7 | 8 | [MooEditable.UI.Button][] 9 | 10 | 11 | MooEditable.UI.ButtonOverlay Method: constructor {#MooEditable-UI-ButtonOverlay:constructor} 12 | ---------------------------------------------------------------------- 13 | 14 | ### Syntax: 15 | 16 | var myMooEditableUIButtonOverlayInstance = new MooEditable.UI.ButtonOverlay([options]); 17 | 18 | ### Arguments: 19 | 20 | 1. options - (*object*, optional) The options object. Also inherited are all the options from [MooEditable.UI.Button][]. 21 | 22 | ### Options: 23 | 24 | * overlayHTML - (*string*: defaults to null) The HTML source for the overlay. 25 | * overlayClass - (*string*: defaults to null) The class name of the overlay. 26 | * overlaySize - (*object*) The size of the overlay. 27 | * x - (*mixed*: defaults to 150) The value to which to set the width of overlay. 28 | * y - (*mixed*: defaults to 'auto') The value to which to set the height of overlay. 29 | * overlayContentClass - The class name of the overlay content. 30 | 31 | ### Events: 32 | 33 | * openOverlay - Executed when the overlay is opened. 34 | * closeOverlay - Executed when the overlay is closed. 35 | 36 | 37 | 38 | [MooEditable.UI.Button]:/MooEditable/MooEditable#MooEditable.UI.Button -------------------------------------------------------------------------------- /Docs/MooEditable/MooEditable.UI.MenuList.md: -------------------------------------------------------------------------------- 1 | Class: MooEditable.UI.MenuList {#MooEditable-UI-MenuList} 2 | ========================================================= 3 | 4 | UI Class to create a menu list (select) element. 5 | 6 | ### Implements: 7 | 8 | [Events][], [Options][] 9 | 10 | 11 | MooEditable.UI.MenuList Method: constructor {#MooEditable-UI-MenuList:constructor} 12 | ---------------------------------------------------------------------------------- 13 | 14 | ### Syntax: 15 | 16 | var myMooEditableMenuList = new MooEditable.UI.MenuList([options]); 17 | 18 | ### Arguments: 19 | 20 | 1. options - (*object*, optional) The options object. 21 | 22 | ### Options: 23 | 24 | * title - (*string*: defaults to null) The title of the menulist. 25 | * name - (*string*: defaults to null) The unique name of the menulist. 26 | * class - (*string*: defaults to null) The class name of the menulist. 27 | * list - (*array*: defaults to empty array) An array of objects containing the text and value for the options of the menulist. 28 | * text - (*string*) The text of the option. 29 | * value - (*string*) The value of the option. 30 | 31 | ### Events: 32 | 33 | * action - Executed when the action of the menulist is executed. 34 | 35 | 36 | 37 | MooEditable.UI.MenuList Method: enable {#MooEditable-UI-MenuList:enable} 38 | ------------------------------------------------------------------------ 39 | 40 | Enables the menulist. 41 | 42 | ### Syntax: 43 | 44 | myMooEditableMenuList.enable(); 45 | 46 | ### Returns: 47 | 48 | * (*object*) This MooEditable.UI.MenuList instance. 49 | 50 | 51 | 52 | MooEditable.UI.MenuList Method: disable {#MooEditable-UI-MenuList:disable} 53 | -------------------------------------------------------------------------- 54 | 55 | Disables the menulist. 56 | 57 | ### Syntax: 58 | 59 | myMooEditableMenuList.disable(); 60 | 61 | ### Returns: 62 | 63 | * (*object*) This MooEditable.UI.MenuList instance. 64 | 65 | 66 | 67 | MooEditable.UI.MenuList Method: activate {#MooEditable-UI-MenuList:activate} 68 | ---------------------------------------------------------------------------- 69 | 70 | Activates the menulist. 71 | 72 | ### Syntax: 73 | 74 | myMooEditableMenuList.activate([value]); 75 | 76 | ### Arguments: 77 | 78 | 1. value - (*string*, optional) The value of the option to be activated. 79 | 80 | ### Returns: 81 | 82 | * (*object*) This MooEditable.UI.MenuList instance. 83 | 84 | 85 | 86 | MooEditable.UI.MenuList Method: deactivate {#MooEditable-UI-MenuList:deactivate} 87 | -------------------------------------------------------------------------------- 88 | 89 | Deactivates the menulist. 90 | 91 | ### Syntax: 92 | 93 | myMooEditableMenuList.deactivate(); 94 | 95 | ### Returns: 96 | 97 | * (*object*) This MooEditable.UI.MenuList instance. 98 | 99 | 100 | 101 | [Events]: http://mootools.net/docs/Class/Class.Extras#Events 102 | [Options]: http://mootools.net/docs/Class/Class.Extras#Options -------------------------------------------------------------------------------- /Docs/MooEditable/MooEditable.md: -------------------------------------------------------------------------------- 1 | Class: MooEditable {#MooEditable} 2 | ================================= 3 | 4 | A simple web-based WYSIWYG editor. 5 | 6 | ### Implements: 7 | 8 | [Events][], [Options][] 9 | 10 | 11 | MooEditable Method: constructor {#MooEditable:constructor} 12 | ---------------------------------------------------------- 13 | 14 | ### Syntax: 15 | 16 | var myMooEditableInstance = new MooEditable(textarea[, options]); 17 | 18 | ### Arguments: 19 | 20 | 1. textarea - (*mixed*) A string of the id for an Element or an Element reference of the textarea this editor modifies. 21 | 2. options - (*object*, optional) The options object. 22 | 23 | ### Options: 24 | 25 | * toolbar - (*boolean*: defaults to true) Whether or not to show the toolbar. 26 | * cleanup: - (*boolean*: defaults to true) Whether or not to clean up the HTML source. 27 | * paragraphise - (*boolean*: defaults to true) Whether or not to create `

` tags when pressing 'Enter'. 28 | * xhtml - (*boolean*: defaults to true) Whether or not to produce XHTML-valid output (empty/void elements with trailing slash). 29 | * semantics - (*boolean*: defaults to true) Whether or not to produce semantic markup (strong/em instead of b/i). 30 | * actions - (*string*: defaults to a string shown below) A string indicating the toolbar items and their arrangement (space-separated). 31 | 32 | 'bold italic underline strikethrough | insertunorderedlist insertorderedlist indent outdent | undo redo | createlink unlink, | urlimage | toggleview' 33 | * handleSubmit - (*boolean*: defaults to true) Whether or not to attach a submit listener to the textarea's parent form, to save content to textarea before submit. 34 | * handleLabel - (*boolean*: defaults to true) Whether or not to attach a click listener to the textarea's related label tag, to focus on the iframe instead. 35 | * baseCSS - (*string*: defaults to a string shown below) A string indicating the base CSS code. 36 | 37 | html{ height: 100%; cursor: text } 38 | body{ font-family: sans-serif; border: 0; } 39 | * extraCSS - (*string*: defaults to null) A string indicating the extra CSS code besides the base. 40 | * externalCSS - (*string*: defaults to null) A string indicating the URL of the external CSS file. No `` tag HTML needed. 41 | * html - (*string*: defaults to a string show below) A string indicating the HTML of the iframe content. 42 | 43 | 44 | 45 | 46 | 47 | {EXTERNALCSS} 48 | 49 | {CONTENT} 50 | 51 | * rootElement - (*string*: defaults to 'p') A string indicating the root element of the editor content. 52 | * baseURL - (*string*: defaults to null) A string indicating the editor content's base URL for resolving relative URLs. 53 | * dimensions - (*object*: defaults to null) An object with x/y values indicating the width and height of the editor. Useful when the editor is not displayed when initialized. 54 | 55 | ### Events: 56 | 57 | * render - Executed when the editor is rendered. 58 | * attach - Executed when the editor is attached. 59 | * detach - Executed when the editor is detached. 60 | * editorMouseUp - Executed when 'mouseup' event is fired on the editor. 61 | * editorMouseDown - Executed when 'mousedown' event is fired on the editor. 62 | * editorContextMenu - Executed when 'contextmenu' event is fired on the editor. 63 | * editorClick - Executed when 'click' event is fired on the editor. 64 | * editorDoubleClick - Executed when 'doubleclick' event is fired on the editor. 65 | * editorKeyPress - Executed when 'keypress' event is fired on the editor. 66 | * editorKeyUp - Executed when 'keyup' event is fired on the editor. 67 | * editorKeyDown - Executed when 'keydown' event is fired on the editor. 68 | * dialogOpen - Executed when dialog is opened. 69 | * dialogClose - Executed when dialog is closed. 70 | 71 | ### Example: 72 | 73 | var myMooEditable = new MooEditable('myTextarea', { 74 | handleSubmit: false, 75 | onRender: function(){ 76 | alert('Done rendering.'); 77 | } 78 | }); 79 | 80 | 81 | 82 | MooEditable Method: attach {#MooEditable:attach} 83 | ------------------------------------------------ 84 | 85 | Attaches the editor and replace the textarea. 86 | 87 | ### Syntax: 88 | 89 | myMooEditable.attach(); 90 | 91 | ### Returns: 92 | 93 | * (*object*) This MooEditable instance. 94 | 95 | 96 | 97 | MooEditable Method: detach {#MooEditable:detach} 98 | ------------------------------------------------ 99 | 100 | Detaches the editor and replaced by the original textarea. 101 | 102 | ### Syntax: 103 | 104 | myMooEditable.detach(); 105 | 106 | ### Returns: 107 | 108 | * (*object*) This MooEditable instance. 109 | 110 | 111 | 112 | MooEditable Method: focus {#MooEditable:focus} 113 | ---------------------------------------------- 114 | 115 | Focus on the editor, regardless of which view is shown. 116 | 117 | ### Syntax: 118 | 119 | myMooEditable.focus(); 120 | 121 | ### Returns: 122 | 123 | * (*object*) This MooEditable instance. 124 | 125 | 126 | 127 | MooEditable Method: toggleView {#MooEditable:toggleView} 128 | -------------------------------------------------------- 129 | 130 | Toggles the editor view of the source or the WYSIWYG content. 131 | 132 | ### Syntax: 133 | 134 | myMooEditable.toggleView(); 135 | 136 | ### Returns: 137 | 138 | * (*object*) This MooEditable instance. 139 | 140 | 141 | 142 | MooEditable Method: getContent {#MooEditable:getContent} 143 | -------------------------------------------------------- 144 | 145 | Returns the source of the editor content. 146 | 147 | ### Syntax: 148 | 149 | myMooEditable.getContent(); 150 | 151 | ### Returns: 152 | 153 | * (*string*) The HTML source of the content 154 | 155 | 156 | 157 | MooEditable Method: setContent {#MooEditable:setContent} 158 | -------------------------------------------------------- 159 | 160 | Sets the source of the editor content. 161 | 162 | ### Syntax: 163 | 164 | myMooEditable.setContent('

Hello World.

'); 165 | 166 | ### Returns: 167 | 168 | * (*object*) This MooEditable instance. 169 | 170 | 171 | 172 | MooEditable Method: saveContent {#MooEditable:saveContent} 173 | ---------------------------------------------------------- 174 | 175 | Saves the source of the WYSIWYG content to the textarea. 176 | 177 | ### Syntax: 178 | 179 | myMooEditable.saveContent(); 180 | 181 | ### Returns: 182 | 183 | * (*object*) This MooEditable instance. 184 | 185 | 186 | 187 | Object: MooEditable.UI {#MooEditable-UI} 188 | ======================================== 189 | 190 | This Object contains the interface classes for MooEditable. 191 | 192 | 193 | 194 | Class: MooEditable.UI.Toolbar {#MooEditable-UI-Toolbar} 195 | ======================================================= 196 | 197 | The toolbar interface. 198 | 199 | ### Implements: 200 | 201 | [Events][], [Options][] 202 | 203 | 204 | MooEditable.UI.Toolbar Method: constructor {#MooEditable-UI-Toolbar:constructor} 205 | -------------------------------------------------------------------------------- 206 | 207 | ### Syntax: 208 | 209 | var myMooEditableToolbar = new MooEditable.UI.Toolbar([options]); 210 | 211 | ### Arguments: 212 | 213 | 1. options - (*object*, optional) The options object. 214 | 215 | ### Options: 216 | 217 | * class - (*string*: defaults to null) The class name of the toolbar. 218 | 219 | ### Events: 220 | 221 | * itemAction - Executed when an action of an item on the toolbar is executed. 222 | 223 | 224 | 225 | MooEditable.UI.Toolbar Method: addItem {#MooEditable-UI-Toolbar:addItem} 226 | ------------------------------------------------------------------------ 227 | 228 | Add an item to the toolbar. 229 | 230 | ### Syntax: 231 | 232 | myMooEditableToolbar.addItem('item'); 233 | 234 | ### Arguments: 235 | 236 | 1. item - (*string*) An action name that matches one already specified in [MooEditable.Actions](#MooEditable-Actions) hash. 237 | 238 | ### Returns: 239 | 240 | * (*object*) The MooEditable.UI.item instance. 241 | 242 | 243 | 244 | MooEditable.UI.Toolbar Method: getItem {#MooEditable-UI-Toolbar:getItem} 245 | ------------------------------------------------------------------------ 246 | 247 | Returns the item from the toolbar. 248 | 249 | ### Syntax: 250 | 251 | var myItem = myMooEditableToolbar.getItem('item'); 252 | 253 | ### Arguments: 254 | 255 | 1. item - (*string*) An action name that matches one already specified in [MooEditable.Actions](#MooEditable-Actions) hash. 256 | 257 | ### Returns: 258 | 259 | * (*object*) The MooEditable.Actions.item object. 260 | 261 | 262 | 263 | MooEditable.UI.Toolbar Method: addSeparator {#MooEditable-UI-Toolbar:addSeparator} 264 | ---------------------------------------------------------------------------------- 265 | 266 | Add a separator to the toolbar. 267 | 268 | ### Syntax: 269 | 270 | myMooEditableToolbar.addSeparator(); 271 | 272 | ### Returns: 273 | 274 | * (*object*) The Element object of the separator. 275 | 276 | 277 | 278 | MooEditable.UI.Toolbar Method: enable {#MooEditable-UI-Toolbar:enable} 279 | ---------------------------------------------------------------------- 280 | 281 | Enables all the items on the toolbar. 282 | 283 | ### Syntax: 284 | 285 | myMooEditableToolbar.enable(); 286 | 287 | ### Returns: 288 | 289 | * (*object*) This MooEditable.UI.Toolbar instance. 290 | 291 | 292 | 293 | MooEditable.UI.Toolbar Method: disable {#MooEditable-UI-Toolbar:disable} 294 | ------------------------------------------------------------------------ 295 | 296 | Disables the items on the toolbar. 297 | 298 | ### Syntax: 299 | 300 | myMooEditableToolbar.disable(except); 301 | 302 | ### Arguments: 303 | 304 | 1. except - (*string*) An action name that matches one already specified in [MooEditable.Actions](#MooEditable-Actions) hash, to be excepted from becoming disabled on the toolbar. 305 | 306 | ### Returns: 307 | 308 | * (*object*) This MooEditable.UI.Toolbar instance. 309 | 310 | 311 | 312 | MooEditable.UI.Toolbar Method: show {#MooEditable-UI-Toolbar:show} 313 | ------------------------------------------------------------------ 314 | 315 | Shows the toolbar. 316 | 317 | ### Syntax: 318 | 319 | myMooEditableToolbar.show(); 320 | 321 | ### Returns: 322 | 323 | * (*object*) This MooEditable.UI.Toolbar instance. 324 | 325 | 326 | 327 | MooEditable.UI.Toolbar Method: hide {#MooEditable-UI-Toolbar:hide} 328 | ------------------------------------------------------------------ 329 | 330 | Hides the toolbar. 331 | 332 | ### Syntax: 333 | 334 | myMooEditableToolbar.hide(); 335 | 336 | ### Returns: 337 | 338 | * (*object*) This MooEditable.UI.Toolbar instance. 339 | 340 | 341 | 342 | Class: MooEditable.UI.Button {#MooEditable-UI-Button} 343 | ===================================================== 344 | 345 | The button interface. 346 | 347 | ### Implements: 348 | 349 | [Events][], [Options][] 350 | 351 | 352 | MooEditable.UI.Button Method: constructor {#MooEditable-UI-Button:constructor} 353 | ------------------------------------------------------------------------------ 354 | 355 | ### Syntax: 356 | 357 | var myMooEditableButton = new MooEditable.UI.Button([options]); 358 | 359 | ### Arguments: 360 | 361 | 1. options - (*object*, optional) The options object. 362 | 363 | ### Options: 364 | 365 | * title - (*string*: defaults to null) The title of the button. 366 | * name - (*string*: defaults to null) The unique name of the button. 367 | * text - (*string*: defaults to 'Button') The text shown on the button. 368 | * class - (*string*: defaults to null) The class name of the button. 369 | * shortcut - (*string*: defaults to null) The keyboard shortcut key to trigger the action of the button. 370 | * mode - (*string*: defaults to 'icon') Can be 'icon', 'text' or 'icon-text'. 371 | * 'icon' - Iconic button 372 | * 'text' - Textual button 373 | * 'icon-text' - Icon and text shown on the button. 374 | 375 | ### Events: 376 | 377 | * action - Executed when the action of the button is executed. 378 | 379 | 380 | 381 | MooEditable.UI.Button Method: enable {#MooEditable-UI-Button:enable} 382 | -------------------------------------------------------------------- 383 | 384 | Enables the button. 385 | 386 | ### Syntax: 387 | 388 | myMooEditableButton.enable(); 389 | 390 | ### Returns: 391 | 392 | * (*object*) This MooEditable.UI.Button instance. 393 | 394 | 395 | 396 | MooEditable.UI.Button Method: disable {#MooEditable-UI-Button:disable} 397 | ---------------------------------------------------------------------- 398 | 399 | Disables the button. 400 | 401 | ### Syntax: 402 | 403 | myMooEditableButton.disable(); 404 | 405 | ### Returns: 406 | 407 | * (*object*) This MooEditable.UI.Button instance. 408 | 409 | 410 | 411 | MooEditable.UI.Button Method: activate {#MooEditable-UI-Button:activate} 412 | ------------------------------------------------------------------------ 413 | 414 | Activates the button. 415 | 416 | ### Syntax: 417 | 418 | myMooEditableButton.activate(); 419 | 420 | ### Returns: 421 | 422 | * (*object*) This MooEditable.UI.Button instance. 423 | 424 | 425 | 426 | MooEditable.UI.Button Method: deactivate {#MooEditable-UI-Button:deactivate} 427 | ---------------------------------------------------------------------------- 428 | 429 | Deactivates the button. 430 | 431 | ### Syntax: 432 | 433 | myMooEditableButton.deactivate(); 434 | 435 | ### Returns: 436 | 437 | * (*object*) This MooEditable.UI.Button instance. 438 | 439 | 440 | 441 | Class: MooEditable.UI.Dialog {#MooEditable-UI-Dialog} 442 | ===================================================== 443 | 444 | The dialog interface. 445 | 446 | ### Implements: 447 | 448 | [Events][], [Options][] 449 | 450 | 451 | MooEditable.UI.Dialog Method: constructor {#MooEditable-UI-Dialog:constructor} 452 | ------------------------------------------------------------------------------ 453 | 454 | ### Syntax: 455 | 456 | var myMooEditableDialog = new MooEditable.UI.Dialog([options]); 457 | 458 | ### Arguments: 459 | 460 | 1. options - (*object*, optional) The options object. 461 | 462 | ### Options: 463 | 464 | * class - (*string*: defaults to null) The class name of the dialog. 465 | * contentClass - (*string*: defaults to null) The class name of the dialog content. 466 | 467 | ### Events: 468 | 469 | * open - Executed when the dialog is opened. 470 | * close - Executed when the dialog is closed. 471 | 472 | 473 | 474 | MooEditable.UI.Dialog Method: open {#MooEditable-UI-Dialog:open} 475 | ---------------------------------------------------------------- 476 | 477 | Opens the dialog. 478 | 479 | ### Syntax: 480 | 481 | myMooEditableDialog.open(); 482 | 483 | ### Returns: 484 | 485 | * (*object*) This MooEditable.UI.Dialog instance. 486 | 487 | 488 | 489 | MooEditable.UI.Dialog Method: close {#MooEditable-UI-Dialog:close} 490 | ------------------------------------------------------------------ 491 | 492 | Closes the dialog. 493 | 494 | ### Syntax: 495 | 496 | myMooEditableDialog.close(); 497 | 498 | ### Returns: 499 | 500 | * (*object*) This MooEditable.UI.Dialog instance. 501 | 502 | 503 | 504 | Function: MooEditable.UI.AlertDialog {#MooEditable-UI-AlertDialog} 505 | ================================================================== 506 | 507 | The alert dialog interface. Replacement for `alert()`. 508 | 509 | ### Syntax: 510 | 511 | var myMooEditableAlertDialog = MooEditable.UI.AlertDialog(text); 512 | 513 | ### Arguments: 514 | 515 | 1. text - (*string*) A string to be shown on the alert dialog. 516 | 517 | 518 | 519 | Function: MooEditable.UI.PromptDialog {#MooEditable-UI-PromptDialog} 520 | ================================================================== 521 | 522 | The prompt dialog interface. Replacement for `prompt()`. 523 | 524 | ### Syntax: 525 | 526 | var myMooEditablePromptDialog = MooEditable.UI.PromptDialog(question[, answer, fn]); 527 | 528 | ### Arguments: 529 | 530 | 1. question - (*string*) A string to be shown as the question on the prompt dialog. 531 | 2. answer - (*string*, optional) A string to be shown in the answer field on the prompt dialog. 532 | 3. fn - (*function*, optional) Executed when the OK button of the prompt dialog is clicked. 533 | 534 | 535 | 536 | Hash: MooEditable.Actions {#MooEditable-Actions} 537 | ================================================ 538 | 539 | This Hash contains the objects that specifies all 'actions' for the editor. The list of actions are: 540 | 541 | * bold 542 | * italic 543 | * underline 544 | * strikethrough 545 | * insertunorderedlist 546 | * insertorderedlist 547 | * indent 548 | * outdent 549 | * undo 550 | * redo 551 | * unlink 552 | * createlink 553 | * urlimage 554 | * toggleview 555 | 556 | 557 | 558 | Native: Element {#Element} 559 | ================================================ 560 | 561 | Custom Native to allow all of its methods to be used with any DOM element via the dollar function [$][]. 562 | 563 | Element Method: mooEditable {#Element:mooEditable} 564 | -------------------------------------------------- 565 | 566 | Initializes the MooEditable instance on the element. 567 | 568 | ### Syntax: 569 | 570 | var myMooEditable = myElement.mooEditable([options]); 571 | 572 | ### Arguments: 573 | 574 | * options - (*object*, optional) See [MooEditable](#MooEditable) for acceptable options. 575 | 576 | ### Returns: 577 | 578 | * (*object*) The MooEditable instance that was created. 579 | 580 | ### Examples: 581 | 582 | var myMooEditable = $('myElement').mooEditable({ 583 | onRender: function(){ 584 | alert('Done rendering.'); 585 | } 586 | }); 587 | 588 | ### See Also: 589 | 590 | * [MooEditable](#MooEditable) 591 | 592 | 593 | 594 | [$]: http://mootools.net/docs/Element/Element/#dollar 595 | [Events]: http://mootools.net/docs/Class/Class.Extras#Events 596 | [Options]: http://mootools.net/docs/Class/Class.Extras#Options -------------------------------------------------------------------------------- /Docs/assets/ca.css: -------------------------------------------------------------------------------- 1 | /*===================================== 2 | caCSS 3 | CSS in its simplest form. 4 | =======================================*/ 5 | 6 | 7 | /*===================================== 8 | Standard Styles 9 | =======================================*/ 10 | 11 | body{ 12 | color: #000; 13 | background-color: #fff; 14 | margin: 0; 15 | padding: 1.5em; 16 | border: 0; 17 | font-size: 75%; 18 | } 19 | 20 | html, body, input, select, textarea{ font-family: "Helvetica Neue", helvetica, arial, sans-serif; } 21 | 22 | pre, code, samp, kbd, var{ font-family: monaco, "Courier New", courier, monospace; } 23 | 24 | a{ text-decoration: none; } 25 | 26 | a:hover{ text-decoration: underline; } 27 | 28 | img, a img{ border: 0; } 29 | 30 | h1, h2, h3, h4, h5, h6{ 31 | margin: 0; 32 | padding: 0; 33 | } 34 | 35 | h1, h2, h3{ 36 | line-height: 1em; 37 | } 38 | 39 | h1{ 40 | font-size: 2.667em; 41 | margin-bottom: .5625em; 42 | } 43 | 44 | h2{ 45 | font-size: 2em; 46 | margin-bottom: .75em; 47 | } 48 | 49 | h3{ 50 | font-size: 1.5em; 51 | margin-bottom: 1em; 52 | } 53 | 54 | h4{ 55 | font-size: 1.333em; 56 | margin-bottom: 1.125em; 57 | line-height: 1.125em; 58 | } 59 | 60 | h5{ 61 | font-size: 1.1667em; 62 | margin-bottom: 1.2857em; 63 | line-height: 1.2857em; 64 | } 65 | 66 | h6{ 67 | font-size: 1em; 68 | font-weight: bold; 69 | margin-bottom: 1.5em; 70 | line-height: 1.5em; 71 | } 72 | 73 | p{ 74 | margin: 0 0 1.5em; 75 | padding: 0; 76 | line-height: 1.5em; 77 | } 78 | 79 | caption{ 80 | font-weight: bold; 81 | padding: .5em; 82 | } 83 | 84 | table{ 85 | border-collapse: collapse; 86 | border-spacing: 0; 87 | margin: 0 0 1.5em; 88 | } 89 | 90 | th, td{ 91 | vertical-align: top; 92 | padding: .3em .5em; 93 | line-height: 1.5em; 94 | } 95 | 96 | pre{ 97 | border: 1px solid #ccc; 98 | margin: 0 0 1.5em; 99 | padding: 1em; 100 | white-space: pre; /* CSS2 */ 101 | white-space: -moz-pre-wrap; /* Mozilla */ 102 | white-space: -hp-pre-wrap; /* HP printers */ 103 | white-space: -o-pre-wrap; /* Opera 7 */ 104 | white-space: -pre-wrap; /* Opera 4-6 */ 105 | white-space: pre-wrap; /* CSS 2.1 */ 106 | /* white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */ 107 | word-wrap: break-word; /* IE */ 108 | } 109 | 110 | ul, ol{ 111 | margin: 0 0 1.5em 3em; 112 | padding: 0; 113 | line-height: 1.5em; 114 | } 115 | 116 | blockquote{ 117 | margin: 0 0 1.5em; 118 | padding: 1em 1em .01em; 119 | border: 1px solid #ccc; 120 | } 121 | 122 | dl{ 123 | margin: 0 0 1.5em; 124 | line-height: 1.5em; 125 | } 126 | 127 | dt{ 128 | margin: 1.5em 0 0; 129 | font-weight: bold; 130 | } 131 | 132 | dd{ 133 | margin: 0 0 0 3em; 134 | } 135 | 136 | dfn{ 137 | font-style: normal; 138 | font-weight: bold; 139 | } 140 | 141 | abbr{ border-bottom: 1px dotted; } 142 | 143 | form{ 144 | margin: 0; 145 | padding: 0; 146 | } 147 | 148 | fieldset{ 149 | margin: 0 0 1.5em; 150 | border: 1px solid #ccc; 151 | padding: 1em; 152 | *padding-top: 0; 153 | } 154 | 155 | legend{ 156 | font-weight: bold; 157 | *margin-bottom: 1em; 158 | } 159 | 160 | input, select, textarea, button{ 161 | font-size: 1em; 162 | max-width: 100%; 163 | vertical-align: middle; 164 | margin: 0; 165 | } 166 | 167 | textarea{ overflow: auto; } 168 | 169 | input.button, button{ 170 | padding: 0 .5em; 171 | } 172 | 173 | input.text{} 174 | input.button, button{} 175 | input.checkbox{} 176 | input.radio{} 177 | input.file{} 178 | 179 | /* HTML5 */ 180 | article, aside, dialog, figure, footer, header, section, nav { display: block; } 181 | 182 | /*===================================== 183 | Feature-specific Styles 184 | =======================================*/ 185 | 186 | /* Fields container */ 187 | ul.fields{ 188 | list-style: none; 189 | margin: 0; 190 | padding: 0; 191 | } 192 | ul.fields li{ padding: .3em 0; } 193 | 194 | /*===================================== 195 | Utility Styles 196 | =======================================*/ 197 | 198 | .left{ float: left; } 199 | .right{ float: right; } 200 | .clear-left{ clear: left; } 201 | .clear-right{ clear: right; } 202 | .clear{ clear: both; } 203 | .hide{ display: none; } 204 | 205 | .copyright{} 206 | .error{} 207 | .example{} 208 | .issue{} 209 | .note{} 210 | .search{} 211 | .warning{} -------------------------------------------------------------------------------- /Docs/assets/docs.css: -------------------------------------------------------------------------------- 1 | head,title{ 2 | display: block; 3 | } 4 | 5 | title{ 6 | font-weight: bold; 7 | padding: .5em; 8 | text-align: center; 9 | border-bottom: 1px solid #000; 10 | } 11 | 12 | #container{ 13 | max-width: 80em; 14 | margin: auto; 15 | } 16 | 17 | #menu{ 18 | float: left; 19 | width: 20%; 20 | } 21 | 22 | #menu ul{ 23 | list-style: none; 24 | margin: 0; 25 | padding: 0; 26 | } 27 | 28 | #menu a:focus{ 29 | font-weight: bold; 30 | } 31 | 32 | #docs{ 33 | margin: 0 22%; 34 | overflow: hidden; 35 | } 36 | 37 | #methods{ 38 | float: right; 39 | width: 20%; 40 | } 41 | 42 | #methods ul{ 43 | list-style: none; 44 | margin: 0; 45 | padding: 0; 46 | } 47 | 48 | #methods ul ul{ 49 | list-style-type: disc; 50 | margin: 1em 1.5em; 51 | } 52 | 53 | h1{ 54 | border-bottom: 3px solid #ccc; 55 | } 56 | h2{ 57 | color: #444; 58 | border-bottom: 1px solid #ccc; 59 | } 60 | 61 | h3, h4, h5, h6{ 62 | color: #999; 63 | background-color: transparent; 64 | } 65 | -------------------------------------------------------------------------------- /Docs/assets/docs.js: -------------------------------------------------------------------------------- 1 | var Docs = { 2 | urls: [ 3 | 'MooEditable/MooEditable.md', 4 | 'MooEditable/MooEditable.UI.MenuList.md', 5 | 'MooEditable/MooEditable.UI.ButtonOverlay.md', 6 | 'MooEditable/MooEditable.Extras.md', 7 | 'MooEditable/MooEditable.Group.md' 8 | ], 9 | remote: false, 10 | githubAPI: { 11 | blob: 'https://api.github.com/repos/cheeaun/mooeditable/contents/Docs/{path}' 12 | }, 13 | 14 | start: function(){ 15 | Docs.generateMenu(); 16 | 17 | var href = window.location.hash.slice(1); 18 | if (href && /(\.md)/.test(href)) Docs.getContent(href, Docs.parse); 19 | 20 | document.addEvent('click', function(e){ 21 | if (e.target.tagName.toLowerCase() != 'a') return; 22 | var hrefsplit = e.target.href.split('#'); 23 | var href = hrefsplit[1]; 24 | if (!href || !/(\.md)/.test(href)) return; 25 | Docs.getContent(href, Docs.parse); 26 | if (hrefsplit.length>2) setTimeout(function(){ 27 | var id = location.hash = hrefsplit[2]; 28 | var to = $(id.replace(/\./g, '-')).getCoordinates(); 29 | window.scrollTo(0, to.top); 30 | }, 1000); 31 | }); 32 | }, 33 | 34 | generateMenu: function(){ 35 | var html = ''; 41 | 42 | $('menu').set('html', html); 43 | }, 44 | 45 | // inspired by http://cssgallery.info/mootools-ajax-request-for-local-files/ 46 | getContent: function(url, fn){ 47 | if (!Docs.contentCache) Docs.contentCache = {}; 48 | if (Docs.contentCache[url]){ 49 | fn(url, Docs.contentCache[url]); 50 | return; 51 | } 52 | 53 | if (document.location.protocol == 'file:'){ 54 | var mdIFrame = new IFrame({ 55 | 'class': 'md-iframe', 56 | src: url, 57 | styles: { 58 | visibility: 'hidden', 59 | position: 'absolute', 60 | left: '-999em', 61 | top: 0 62 | }, 63 | events: { 64 | load: function(){ 65 | var doc = $(this.contentWindow.document.body).getElement('pre').get('text'); 66 | Docs.contentCache[url] = doc; 67 | fn(url, doc); 68 | Docs.disposeIframes(); 69 | } 70 | } 71 | }).inject(document.body); 72 | } else if (Docs.remote){ 73 | new Request.JSONP({ 74 | url: Docs.githubAPI.blob.substitute({ 75 | path: url 76 | }), 77 | onSuccess: function(doc){ 78 | var data = doc.data.content.replace(/\n/ig, ''); 79 | data = atob(data); 80 | Docs.contentCache[url] = data; 81 | fn(url, data); 82 | } 83 | }).send(); 84 | } else { 85 | new Request({ 86 | url: url, 87 | method: 'get', 88 | onSuccess: function(doc){ 89 | Docs.contentCache[url] = doc; 90 | fn(url, doc); 91 | } 92 | }).send(); 93 | } 94 | }, 95 | 96 | parse: function(url, doc){ 97 | var html = new Showdown.converter().makeHtml(doc); 98 | var sd = $('docs').set('html', html); 99 | 100 | // anchorize the headings 101 | var anchor = (/\{#(.*)\}/); 102 | sd.getElements('h1, h2, h3, h4, h5, h6').each(function(h){ 103 | var matches = h.innerHTML.match(anchor); 104 | if (matches) h.set('id', matches[1]); 105 | h.innerHTML = h.innerHTML.replace(anchor, ''); 106 | }); 107 | 108 | // hash methods list 109 | var headings = sd.getElements('h1'); 110 | var methods = sd.getElements('h2'); 111 | 112 | var html = ''; 126 | $('methods').set('html', html); 127 | 128 | // hack some links 129 | sd.getElements('a[href^=/]').each(function(a){ 130 | var href = Docs.remote ? a.get('href').slice(1) : a.href; 131 | var hrefsplit = href.split('#'); 132 | var path = hrefsplit[0].replace(/([a-z:\/]+:\/{1,3})/i, ''); 133 | var href = '#' + path + '.md'; 134 | if (hrefsplit.length>1) href += '#' + hrefsplit[1]; 135 | a.href = href; 136 | }); 137 | 138 | // prettify code 139 | sd.getElements('pre').addClass('prettyprint'); 140 | prettyPrint(); 141 | 142 | // scroll to top 143 | window.scrollTo(0, 0); 144 | }, 145 | 146 | disposeIframes: function(){ 147 | setTimeout(function(){ 148 | $$('.md-iframe').dispose(); 149 | }, 100); 150 | }, 151 | 152 | }; 153 | 154 | window.addEvent('domready', Docs.start); -------------------------------------------------------------------------------- /Docs/assets/prettify.css: -------------------------------------------------------------------------------- 1 | .str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun{color:#660}.pln{color:#000}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec{color:#606}@media print{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun{color:#440}.pln{color:#000}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}} -------------------------------------------------------------------------------- /Docs/assets/prettify.js: -------------------------------------------------------------------------------- 1 | function H(){var x=navigator&&navigator.userAgent&&/\bMSIE 6\./.test(navigator.userAgent);H=function(){return x};return x}(function(){function x(b){b=b.split(/ /g);var a={};for(var c=b.length;--c>=0;){var d=b[c];if(d)a[d]=null}return a}var y="break continue do else for if return while ",U=y+"auto case char const default double enum extern float goto int long register short signed sizeof static struct switch typedef union unsigned void volatile ",D=U+"catch class delete false import new operator private protected public this throw true try ", 2 | I=D+"alignof align_union asm axiom bool concept concept_map const_cast constexpr decltype dynamic_cast explicit export friend inline late_check mutable namespace nullptr reinterpret_cast static_assert static_cast template typeid typename typeof using virtual wchar_t where ",J=D+"boolean byte extends final finally implements import instanceof null native package strictfp super synchronized throws transient ",V=J+"as base by checked decimal delegate descending event fixed foreach from group implicit in interface internal into is lock object out override orderby params readonly ref sbyte sealed stackalloc string select uint ulong unchecked unsafe ushort var ", 3 | K=D+"debugger eval export function get null set undefined var with Infinity NaN ",L="caller delete die do dump elsif eval exit foreach for goto if import last local my next no our print package redo require sub undef unless until use wantarray while BEGIN END ",M=y+"and as assert class def del elif except exec finally from global import in is lambda nonlocal not or pass print raise try with yield False True None ",N=y+"alias and begin case class def defined elsif end ensure false in module next nil not or redo rescue retry self super then true undef unless until when yield BEGIN END ", 4 | O=y+"case done elif esac eval fi function in local set then until ",W=I+V+K+L+M+N+O;function X(b){return b>="a"&&b<="z"||b>="A"&&b<="Z"}function u(b,a,c,d){b.unshift(c,d||0);try{a.splice.apply(a,b)}finally{b.splice(0,2)}}var Y=(function(){var b=["!","!=","!==","#","%","%=","&","&&","&&=","&=","(","*","*=","+=",",","-=","->","/","/=",":","::",";","<","<<","<<=","<=","=","==","===",">",">=",">>",">>=",">>>",">>>=","?","@","[","^","^=","^^","^^=","{","|","|=","||","||=","~","break","case","continue", 5 | "delete","do","else","finally","instanceof","return","throw","try","typeof"],a="(?:(?:(?:^|[^0-9.])\\.{1,3})|(?:(?:^|[^\\+])\\+)|(?:(?:^|[^\\-])-)";for(var c=0;c:&])/g,"\\$1")}a+="|^)\\s*$";return new RegExp(a)})(),P=/&/g,Q=//g,Z=/\"/g;function $(b){return b.replace(P,"&").replace(Q,"<").replace(R,">").replace(Z,""")}function E(b){return b.replace(P,"&").replace(Q,"<").replace(R,">")}var aa= 6 | /</g,ba=/>/g,ca=/'/g,da=/"/g,ea=/&/g,fa=/ /g;function ga(b){var a=b.indexOf("&");if(a<0)return b;for(--a;(a=b.indexOf("&#",a+1))>=0;){var c=b.indexOf(";",a);if(c>=0){var d=b.substring(a+3,c),g=10;if(d&&d.charAt(0)==="x"){d=d.substring(1);g=16}var e=parseInt(d,g);if(!isNaN(e))b=b.substring(0,a)+String.fromCharCode(e)+b.substring(c+1)}}return b.replace(aa,"<").replace(ba,">").replace(ca,"'").replace(da,'"').replace(ea,"&").replace(fa," ")}function S(b){return"XMP"===b.tagName} 7 | function z(b,a){switch(b.nodeType){case 1:var c=b.tagName.toLowerCase();a.push("<",c);for(var d=0;d");for(var e=b.firstChild;e;e=e.nextSibling)z(e,a);if(b.firstChild||!/^(?:br|link|img)$/.test(c))a.push("");break;case 2:a.push(b.name.toLowerCase(),'="',$(b.value),'"');break;case 3:case 4:a.push(E(b.nodeValue));break}}var F=null;function ha(b){if(null===F){var a=document.createElement("PRE"); 8 | a.appendChild(document.createTextNode('\n'));F=!/=0;i-=" ".length)d.push(" ".substring(0,i));g=e+1;break; 9 | case "\n":a=0;break;default:++a}}if(!d)return c;d.push(c.substring(g));return d.join("")}}var ja=/(?:[^<]+|'); 77 | this.setContent(s); 78 | } else { 79 | var s = this.textarea.get('value').replace(//gi, ''); 80 | this.textarea.set('value', s); 81 | } 82 | }, 83 | render: function(){ 84 | this.options.extraCSS = 'img.mooeditable-pagebreak { display:block; width:100%; height:16px; background: url(' 85 | + MooEditable.Actions.Settings.pagebreak.imageFile + ') repeat-x; }' 86 | + this.options.extraCSS; 87 | } 88 | } 89 | }; 90 | -------------------------------------------------------------------------------- /Source/MooEditable/MooEditable.Smiley.js: -------------------------------------------------------------------------------- 1 | /* 2 | --- 3 | 4 | name: MooEditable.Smiley 5 | 6 | description: Extends MooEditable to insert smiley/emoticons. 7 | 8 | license: MIT-style license 9 | 10 | authors: 11 | - Olivier Refalo 12 | 13 | requires: 14 | # - MooEditable 15 | # - MooEditable.UI 16 | # - MooEditable.UI.ButtonOverlay 17 | # - MooEditable.Actions 18 | 19 | provides: [MooEditable.Actions.smiley] 20 | 21 | usage: | 22 | Add the following tags in your html 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 37 | 38 | ... 39 | */ 40 | 41 | MooEditable.Actions.Settings.smiley = { 42 | imagesPath: '../../Assets/MooEditable/Smiley/', 43 | smileys: ['angryface', 'blush', 'gasp', 'grin', 'halo', 'lipsaresealed', 'smile', 'undecided', 'wink'], 44 | fileExt: '.png' 45 | }; 46 | 47 | MooEditable.Locale.define('insertSmiley', 'Insert Smiley'); 48 | 49 | MooEditable.Actions.smiley = { 50 | type: 'button-overlay', 51 | title: MooEditable.Locale.get('insertSmiley'), 52 | options: { 53 | overlaySize: {x: 'auto'}, 54 | overlayHTML: (function(){ 55 | var settings = MooEditable.Actions.Settings.smiley; 56 | var html = ''; 57 | settings.smileys.each(function(s){ 58 | html += ''; 59 | }); 60 | return html; 61 | })() 62 | }, 63 | command: function(buttonOverlay, e){ 64 | var el = e.target; 65 | if (el.tagName.toLowerCase() != 'img') return; 66 | var src = $(el).get('src'); 67 | var content = ''; 68 | this.focus(); 69 | this.selection.insertContent(content); 70 | }, 71 | events: { 72 | attach: function(editor){ 73 | if (Browser.ie){ 74 | // addListener instead of addEvent, because controlselect is a native event in IE 75 | editor.doc.addListener('controlselect', function(e){ 76 | var el = e.target || e.srcElement; 77 | if (el.tagName.toLowerCase() != 'img') return; 78 | if (!document.id(el).hasClass('smiley')) return; 79 | if (e.preventDefault){ 80 | e.preventDefault(); 81 | } else { 82 | e.returnValue = false; 83 | } 84 | }); 85 | } 86 | }, 87 | editorMouseDown: function(e, editor){ 88 | var el = e.target; 89 | var isSmiley = (el.tagName.toLowerCase() == 'img') && $(el).hasClass('smiley'); 90 | Function.attempt(function(){ 91 | editor.doc.execCommand('enableObjectResizing', false, !isSmiley); 92 | }); 93 | } 94 | } 95 | }; 96 | -------------------------------------------------------------------------------- /Source/MooEditable/MooEditable.Table.js: -------------------------------------------------------------------------------- 1 | /* 2 | --- 3 | 4 | name: MooEditable.Table 5 | 6 | description: Extends MooEditable to insert table with manipulation options. 7 | 8 | license: MIT-style license 9 | 10 | authors: 11 | - Radovan Lozej 12 | - Ryan Mitchell 13 | 14 | requires: 15 | # - MooEditable 16 | # - MooEditable.UI 17 | # - MooEditable.Actions 18 | 19 | provides: 20 | - MooEditable.UI.TableDialog 21 | - MooEditable.Actions.tableadd 22 | - MooEditable.Actions.tableedit 23 | - MooEditable.Actions.tablerowadd 24 | - MooEditable.Actions.tablerowedit 25 | - MooEditable.Actions.tablerowspan 26 | - MooEditable.Actions.tablerowsplit 27 | - MooEditable.Actions.tablerowdelete 28 | - MooEditable.Actions.tablecoladd 29 | - MooEditable.Actions.tablecoledit 30 | - MooEditable.Actions.tablecolspan 31 | - MooEditable.Actions.tablecolsplit 32 | - MooEditable.Actions.tablecoldelete 33 | 34 | usage: | 35 | Add the following tags in your html 36 | 37 | 38 | 39 | 40 | 41 | 42 | 49 | 50 | ... 51 | */ 52 | 53 | MooEditable.Locale.define({ 54 | tableColumns: 'columns', 55 | tableRows: 'rows', 56 | tableWidth: 'width', 57 | tableClass: 'class', 58 | tableType: 'type', 59 | tableHeader: 'Header', 60 | tableCell: 'Cell', 61 | tableAlign: 'align', 62 | tableAlignNone: 'none', 63 | tableAlignCenter: 'center', 64 | tableAlignRight: 'right', 65 | tableValign: 'vertical align', 66 | tableValignNone: 'none', 67 | tableValignTop: 'top', 68 | tableValignMiddle: 'middle', 69 | tableValignBottom: 'bottom', 70 | addTable: 'Add Table', 71 | editTable: 'Edit Table', 72 | addTableRow: 'Add Table Row', 73 | editTableRow: 'Edit Table Row', 74 | mergeTableRow: 'Merge Table Row', 75 | splitTableRow: 'Split Table Row', 76 | deleteTableRow: 'Delete Table Row', 77 | addTableCol: 'Add Table Column', 78 | editTableCol: 'Edit Table Column', 79 | mergeTableCell: 'Merge Table Cell', 80 | splitTableCell: 'Split Table Cell', 81 | deleteTableCol: 'Delete Table Column' 82 | }); 83 | 84 | MooEditable.UI.TableDialog = function(editor, dialog){ 85 | var html = { 86 | tableadd: MooEditable.Locale.get('tableColumns') + ' ' 87 | + MooEditable.Locale.get('tableRows') + ' ', 88 | tableedit: MooEditable.Locale.get('tableWidth') + ' ' 89 | + MooEditable.Locale.get('tableClass') + ' ', 90 | tablerowedit: MooEditable.Locale.get('tableClass') + ' ' 91 | + MooEditable.Locale.get('tableType') + ' ', 95 | tablecoledit: MooEditable.Locale.get('tableWidth') + ' ' 96 | + MooEditable.Locale.get('tableClass') + ' ' 97 | + MooEditable.Locale.get('tableAlign') + ' ' 103 | + MooEditable.Locale.get('tableValign') + ' ' 109 | }; 110 | html[dialog] += '' 111 | + ''; 112 | 113 | var action = { 114 | tableadd: { 115 | click: function(e){ 116 | var col = this.el.getElement('.table-c').value.toInt(); 117 | var row = this.el.getElement('.table-r').value.toInt(); 118 | if (!(row>0 && col>0)) return; 119 | var div, table, tbody, ro = []; 120 | div = new Element('tdiv'); 121 | table = new Element('table').set('border', 0).set('width', '100%').inject(div); 122 | tbody = new Element('tbody').inject(table); 123 | for (var r = 0; r 1){ 282 | this.el.addClass('onActive'); 283 | } 284 | } 285 | } 286 | }, 287 | 288 | tablerowdelete:{ 289 | title: MooEditable.Locale.get('deleteTableRow'), 290 | command: function(){ 291 | var node = this.selection.getNode().getParent('tr'); 292 | if (node) node.getParent().deleteRow(node.rowIndex); 293 | } 294 | }, 295 | 296 | tablecoladd:{ 297 | title: MooEditable.Locale.get('addTableCol'), 298 | command: function(){ 299 | var node = this.selection.getNode(); 300 | if (node.get('tag') != 'td') node = node.getParent('td'); 301 | if (node){ 302 | var index = node.cellIndex; 303 | var len = node.getParent().getParent().childNodes.length; 304 | for (var i=0; i 1){ 359 | this.el.addClass('onActive'); 360 | } 361 | } 362 | } 363 | }, 364 | 365 | tablecoldelete:{ 366 | title: MooEditable.Locale.get('deleteTableCol'), 367 | command: function(){ 368 | var node = this.selection.getNode(); 369 | if (node.get('tag') != 'td') node = node.getParent('td'); 370 | if (node){ 371 | var len = node.getParent().getParent().childNodes.length; 372 | var index = node.cellIndex; 373 | var tt = node.getParent().getParent(); 374 | for (var i=0; i' + html + '', 49 | tabindex: 0, 50 | styles: { 51 | left: '-999em', 52 | position: 'absolute', 53 | width: self.options.overlaySize.x, 54 | height: self.options.overlaySize.y 55 | }, 56 | events: { 57 | mousedown: self.clickOverlay.bind(self), 58 | focus: self.openOverlay.bind(self), 59 | blur: self.closeOverlay.bind(self) 60 | } 61 | }).inject(document.body).store('MooEditable.UI.ButtonOverlay', this); 62 | this.overlayVisible = false; 63 | 64 | window.addEvent('resize', function(){ 65 | if (self.overlayVisible) self.positionOverlay(); 66 | }); 67 | }, 68 | 69 | openOverlay: function(){ 70 | if (this.overlayVisible) return; 71 | this.overlayVisible = true; 72 | this.activate(); 73 | this.fireEvent('openOverlay', this); 74 | return this; 75 | }, 76 | 77 | closeOverlay: function(){ 78 | if (!this.overlayVisible) return; 79 | this.overlay.setStyle('left', '-999em'); 80 | this.overlayVisible = false; 81 | this.deactivate(); 82 | this.fireEvent('closeOverlay', this); 83 | return this; 84 | }, 85 | 86 | clickOverlay: function(e){ 87 | if (e.target == this.overlay || e.target.parentNode == this.overlay) return; 88 | this.overlay.blur(); 89 | e.preventDefault(); 90 | this.action(e); 91 | }, 92 | 93 | click: function(e){ 94 | e.preventDefault(); 95 | if (this.disabled) return; 96 | if (this.overlayVisible){ 97 | this.overlay.blur(); 98 | return; 99 | } else { 100 | this.positionOverlay(); 101 | this.overlay.focus(); 102 | } 103 | }, 104 | 105 | positionOverlay: function(){ 106 | var coords = this.el.getCoordinates(); 107 | this.overlay.setStyles({ 108 | top: coords.bottom, 109 | left: coords.left 110 | }); 111 | return this; 112 | } 113 | 114 | }); 115 | -------------------------------------------------------------------------------- /Source/MooEditable/MooEditable.UI.ExtendedLinksDialog.js: -------------------------------------------------------------------------------- 1 | /* 2 | --- 3 | 4 | name: MooEditable.UI.ExtendedLinksDialog 5 | 6 | description: Extends MooEditable, adds better link support. 7 | 8 | license: MIT-style license 9 | 10 | authors: 11 | - André Fiedler 12 | 13 | requires: 14 | - MooEditable.UI.Dialog 15 | - MooEditable.Actions 16 | - MooEditable.UI.AlertDialog 17 | - More/URI 18 | 19 | provides: [MooEditable.UI.ExtendedLinksDialog] 20 | 21 | ... 22 | */ 23 | 24 | (function(){ 25 | 26 | MooEditable.Locale.define({ 27 | protocol: 'protocol', 28 | link: 'link', 29 | email: 'e-Mail', 30 | urlWithoutHttp: 'URL (without http://)', 31 | window: 'window', 32 | sameWindow: 'same window', 33 | newWindow: 'new window' 34 | }); 35 | 36 | String.implement({ 37 | camelCaseFirst: function(){ 38 | return this.replace(/\s*(\D)/, function(match){ 39 | return match.toUpperCase(); 40 | }); 41 | } 42 | }); 43 | 44 | var urlRegex = /^(https?|ftp|rmtp|mms):\/\/(([A-Z0-9][A-Z0-9_-]*)(\.[A-Z0-9][A-Z0-9_-]*)+)(:(\d+))?\/?/i; 45 | 46 | MooEditable.UI.ExtendedLinksDialog = function(editor){ 47 | var html = '
' 52 | + '
' 55 | + '

' 60 | + '' 61 | + ''; 62 | return new MooEditable.UI.Dialog(html, { 63 | 'class': 'mooeditable-prompt-dialog', 64 | onOpen: function(){ 65 | var protocol_input = this.el.getElement('.dialog-input-protocol'); 66 | var url_input = this.el.getElement('.dialog-input-url'); 67 | var target_input = this.el.getElement('.dialog-input-target'); 68 | var text = editor.selection.getText(); 69 | var node = editor.selection.getNode(); 70 | if(node.get('tag') == 'a'){ 71 | var uri = new URI(node.href); 72 | protocol_input.set('value', uri.get('scheme')); 73 | if(uri.get('scheme') == 'mailto'){ 74 | url_input.set('value', node.href.replace('mailto:', '')); 75 | } 76 | else { 77 | url_input.set('value', uri.get('host')); 78 | } 79 | target_input.set('value', node.target || '_self'); 80 | } 81 | else if(urlRegex.test(text)) { 82 | var uri = new URI(text); 83 | protocol_input.set('value', uri.get('scheme')); 84 | url_input.set('value', uri.get('host')); 85 | } 86 | (function(){ 87 | url_input.focus(); 88 | url_input.select(); 89 | }).delay(10); 90 | }, 91 | onClick: function(e){ 92 | e.preventDefault(); 93 | if (e.target.tagName.toLowerCase() != 'button') return; 94 | var button = document.id(e.target); 95 | var protocol_input = this.el.getElement('.dialog-input-protocol'); 96 | var url_input = this.el.getElement('.dialog-input-url'); 97 | var target_input = this.el.getElement('.dialog-input-target'); 98 | if (button.hasClass('dialog-cancel-button')){ 99 | this.close(); 100 | } 101 | else if (button.hasClass('dialog-ok-button')){ 102 | if(protocol_input.get('value') == 'mailto'){ 103 | editor.selection.insertContent('' + editor.selection.getText() + ''); 104 | } 105 | else { 106 | editor.selection.insertContent('' + editor.selection.getText() + ''); 107 | } 108 | this.close(); 109 | } 110 | } 111 | }); 112 | }; 113 | 114 | MooEditable.Actions.createlink.dialogs.prompt = function(editor){ 115 | return MooEditable.UI.ExtendedLinksDialog(editor); 116 | } 117 | MooEditable.Actions.createlink.command = function(){ 118 | var selection = this.selection; 119 | var dialogs = this.dialogs.createlink; 120 | if (selection.isCollapsed()){ 121 | var node = selection.getNode(); 122 | if (node.get('tag') == 'a' && node.get('href')){ 123 | selection.selectNode(node); 124 | dialogs.prompt.open(); 125 | } else { 126 | dialogs.alert.open(); 127 | } 128 | } else { 129 | dialogs.prompt.open(); 130 | } 131 | } 132 | 133 | })(); -------------------------------------------------------------------------------- /Source/MooEditable/MooEditable.UI.MenuList.js: -------------------------------------------------------------------------------- 1 | /* 2 | --- 3 | 4 | name: MooEditable.UI.MenuList 5 | 6 | description: UI Class to create a menu list (select) element. 7 | 8 | license: MIT-style license 9 | 10 | authors: 11 | - Lim Chee Aun 12 | 13 | requires: 14 | # - MooEditable 15 | # - MooEditable.UI 16 | 17 | provides: [MooEditable.UI.MenuList] 18 | 19 | ... 20 | */ 21 | 22 | MooEditable.UI.MenuList = new Class({ 23 | 24 | Implements: [Events, Options], 25 | 26 | options: { 27 | /* 28 | onAction: function(){}, 29 | */ 30 | title: '', 31 | name: '', 32 | 'class': '', 33 | list: [] 34 | }, 35 | 36 | initialize: function(options){ 37 | this.setOptions(options); 38 | this.name = this.options.name; 39 | this.render(); 40 | }, 41 | 42 | toElement: function(){ 43 | return this.el; 44 | }, 45 | 46 | render: function(){ 47 | var self = this; 48 | var html = ''; 49 | this.options.list.each(function(item){ 50 | html += ''.substitute(item); 51 | }); 52 | this.el = new Element('select', { 53 | 'class': self.options['class'], 54 | title: self.options.title, 55 | html: html, 56 | styles: { 'height' : '21px' }, 57 | events: { 58 | change: self.change.bind(self) 59 | } 60 | }); 61 | 62 | this.disabled = false; 63 | 64 | // add hover effect for IE 65 | if (Browser.ie) this.el.addEvents({ 66 | mouseenter: function(e){ this.addClass('hover'); }, 67 | mouseleave: function(e){ this.removeClass('hover'); } 68 | }); 69 | 70 | return this; 71 | }, 72 | 73 | change: function(e){ 74 | e.preventDefault(); 75 | if (this.disabled) return; 76 | var name = e.target.value; 77 | this.action(name); 78 | }, 79 | 80 | action: function(){ 81 | this.fireEvent('action', [this].concat(Array.from(arguments))); 82 | }, 83 | 84 | enable: function(){ 85 | if (!this.disabled) return; 86 | this.disabled = false; 87 | this.el.set('disabled', false).removeClass('disabled').set({ 88 | disabled: false, 89 | opacity: 1 90 | }); 91 | return this; 92 | }, 93 | 94 | disable: function(){ 95 | if (this.disabled) return; 96 | this.disabled = true; 97 | this.el.set('disabled', true).addClass('disabled').set({ 98 | disabled: true, 99 | opacity: 0.4 100 | }); 101 | return this; 102 | }, 103 | 104 | activate: function(value){ 105 | if (this.disabled) return; 106 | var index = 0; 107 | if (value) this.options.list.each(function(item, i){ 108 | if (item.value == value) index = i; 109 | }); 110 | this.el.selectedIndex = index; 111 | return this; 112 | }, 113 | 114 | deactivate: function(){ 115 | this.el.selectedIndex = 0; 116 | this.el.removeClass('onActive'); 117 | return this; 118 | } 119 | 120 | }); 121 | -------------------------------------------------------------------------------- /Source/scripts.json: -------------------------------------------------------------------------------- 1 | { 2 | 3 | "MooEditable": { 4 | 5 | "MooEditable": { 6 | "deps": ["MooEditable"], 7 | "desc": "Class for creating a WYSIWYG editor, for contentEditable-capable browsers." 8 | }, 9 | 10 | "MooEditable.UI.MenuList": { 11 | "deps": ["MooEditable"], 12 | "desc": "UI Class to create a menu list (select) element." 13 | }, 14 | 15 | "MooEditable.UI.ButtonOverlay": { 16 | "deps": ["MooEditable"], 17 | "desc": "UI Class to create a button element with a popup overlay." 18 | }, 19 | 20 | "MooEditable.Extras": { 21 | "deps": ["MooEditable"], 22 | "desc": "Extends MooEditable to include more (simple) toolbar buttons." 23 | }, 24 | 25 | "MooEditable.Group": { 26 | "deps": ["MooEditable"], 27 | "desc": "Extends MooEditable to have multiple instances on a page controlled by one toolbar." 28 | }, 29 | 30 | "MooEditable.Forecolor": { 31 | "deps": ["MooEditable", "MooEditable.UI.ButtonOverlay"], 32 | "desc": "Extends MooEditable to change the color of the text from a list a predefined colors." 33 | }, 34 | 35 | "MooEditable.Smiley": { 36 | "deps": ["MooEditable", "MooEditable.UI.ButtonOverlay"], 37 | "desc": "Extends MooEditable to insert smiley/emoticons." 38 | }, 39 | 40 | "MooEditable.Table": { 41 | "deps": ["MooEditable"], 42 | "desc": "Extends MooEditable to insert table with manipulation options." 43 | }, 44 | 45 | "MooEditable.Image": { 46 | "deps": ["MooEditable"], 47 | "desc": "Extends MooEditable to insert image with manipulation options." 48 | }, 49 | 50 | "MooEditable.Flash": { 51 | "deps": ["MooEditable"], 52 | "desc": "Extends MooEditable to embed Flash." 53 | }, 54 | 55 | "MooEditable.Charmap": { 56 | "deps": ["MooEditable"], 57 | "desc": "Extends MooEditable with a characters map" 58 | }, 59 | 60 | "MooEditable.Pagebreak": { 61 | "deps": ["MooEditable"], 62 | "desc": "Extends MooEditable with pagebreak plugin" 63 | } 64 | 65 | } 66 | 67 | } -------------------------------------------------------------------------------- /package.yml: -------------------------------------------------------------------------------- 1 | name: MooEditable 2 | author: cheeaun 3 | category: Widgets 4 | tags: [wysiwyg, editor, rte] 5 | docs: http://cheeaun.github.com/mooeditable/docs.html 6 | demo: http://cheeaun.github.com/mooeditable/ 7 | current: 0.4 --------------------------------------------------------------------------------