diff --git a/public/src/automagical.js b/public/src/automagical.js index 3128459..80c1259 100644 --- a/public/src/automagical.js +++ b/public/src/automagical.js @@ -3,6 +3,7 @@ var automagical = (function(){ var populateNavList, initializeGetHtml, initializeDroppableAreas, + addContextMenu, LONG_LOREM_IPSUM, SHORT_LOREM_IPSUM; @@ -83,22 +84,22 @@ var automagical = (function(){ switch (elementInner.name){ case('Text'): - tag.append(LONG_LOREM_IPSUM()); + tag.text(LONG_LOREM_IPSUM()); break; case ('Label'): - tag.append(SHORT_LOREM_IPSUM()); + tag.text(SHORT_LOREM_IPSUM()); break; case ('Heading'): - tag.append(SHORT_LOREM_IPSUM()); + tag.text(SHORT_LOREM_IPSUM()); break; case ('Container'): tag.addClass('container'); break; case ('Link'): - tag.append('A link'); + tag.text('A link'); break; case ('Heading'): - tag.append('Heading'); + tag.text('Heading'); break; default: response = elementInner.tag; @@ -211,11 +212,7 @@ var automagical = (function(){ $(el).addClass('container component') - //TODO: Fix this bug where dropped images keep resizing themselves. JQuery has bug making images resizable and droppable - if ($(el).get(0).tagName == 'IMG') { - - $(el).css('position', 'absolute'); - } + }); bodyWrapper.empty().remove(); @@ -235,6 +232,8 @@ var automagical = (function(){ .removeClass("ui-draggable-dragging") .draggable({containment:"#canvas"}) ); + + $(element).css('position', 'absolute'); } else { appendTo.append($(element) @@ -250,6 +249,8 @@ var automagical = (function(){ ); } + addContextMenu(element); + @@ -272,6 +273,30 @@ var automagical = (function(){ $(element).trigger('appendToCanvas'); } + addContextMenu = function(element) { + + $(element).contextMenu('context-menu-1', { + 'Change Text': { + click: function(element) { // element is the jquery obj clicked on when context menu launched + automagicalCss.changeCurrentElementContent(); + }, + klass: "menu-item-1" // a custom css class for this menu item (usable for styling) + }, + 'Delete': { + click: function(element){ + element.remove(); + }, + klass: "menu-item-2" + } + }); + + + + + + + }; + return { initialize : function(){ @@ -282,7 +307,7 @@ var automagical = (function(){ initializeGetHtml(); populateNavList(); initializeDroppableAreas($("#canvas")); - + checkSavedPage(); } }; diff --git a/public/src/automagicalCss.js b/public/src/automagicalCss.js index d96c553..0230e4b 100644 --- a/public/src/automagicalCss.js +++ b/public/src/automagicalCss.js @@ -8,14 +8,65 @@ var automagicalCss = (function(){ changeWidthHeightAttributesBox, extractElementId, initializeFileUploadDialog, + initializeChangeContentDialog, initializeFileList, submitFile, + justText, cssInformation = {}, attrInformation = {}, - fileUploadDialog; + fileUploadDialog, + changeContentDialog; + justText = function(element) { + + return $(element) .clone() + .children() + .remove() + .end() + .text(); + + }; + + initializeChangeContentDialog = function() { + changeContentDialog = $('
') + .html( ' ' + + ' ' + ) + .dialog({ + autoOpen: false, + title: 'Change Content', + modal: true, + open: function(event, ui) { + $('textarea#newContent').text(''); + + }, + resizable: false, + buttons: { + 'Change': function(){ + var el = $('#canvas .outline-element-clicked'); + + //Have to do it this way to keep it resizable + $(el) + .contents() + .filter(function() { + return this.nodeType == 3; //Node.TEXT_NODE + }).replaceWith($('#newContent').val()); + + changeContentDialog.dialog('close'); + + + }, + 'Cancel': function(){ + changeContentDialog.dialog('close'); + }, + + } + + }); + } + initializeFileUploadDialog = function() { fileUploadDialog = $('') .html('