Commit be5003f5 authored by Hermann Mayer's avatar Hermann Mayer

Page New/Edit uses now the Ace Editor with working preview. Default Page Viewer…

Page New/Edit uses now the Ace Editor with working preview. Default Page Viewer now uses the Editor format action to use markdown.
parent 4bc19909
...@@ -70,3 +70,7 @@ Build Assetics ...@@ -70,3 +70,7 @@ Build Assetics
php app/console assetic:dump --env=prod --no-debug php app/console assetic:dump --env=prod --no-debug
Link Assetics
php app/console assets:install --symlink
...@@ -17,6 +17,13 @@ ...@@ -17,6 +17,13 @@
<!--[if lt IE 9]> <!--[if lt IE 9]>
<script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script> <script src="http://html5shim.googlecode.com/svn/trunk/html5.js"></script>
<![endif]--> <![endif]-->
{% javascripts
'@JityHomepageBundle/Resources/public/js/essentials/*.js'
filter='?closure'
%}
<script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}
</head> </head>
<body> <body>
...@@ -187,9 +194,9 @@ ...@@ -187,9 +194,9 @@
<a target="_blank" href="http://projects.hermann-mayer.net/">Chiliprojects</a> und <a target="_blank" href="http://projects.hermann-mayer.net/">Chiliprojects</a> und
<a target="_blank" href="http://ebay-tool.hermann-mayer.net/">eBay Tool</a>. <a target="_blank" href="http://ebay-tool.hermann-mayer.net/">eBay Tool</a>.
Allgemeine Informationen können Sie aus folgenden Quellen beziehen: Allgemeine Informationen können Sie aus folgenden Quellen beziehen:
<a target="_blank" href="#">Impressum</a>, <a target="_blank" href="{{ path('impress') }}">Impressum</a>,
<a target="_blank" href="#">Über mich</a> und <a target="_blank" href="{{ path('home') }}">Über mich</a> und
<a target="_blank" href="#">Kontakt</a>. <a target="_blank" href="{{ path('contact') }}">Kontakt</a>.
</small></p> </small></p>
</div> </div>
</div> </div>
......
deploy @ f8e2ecdd
Subproject commit d7d36acf696d61fbf1cd46da907e95e187dba900 Subproject commit f8e2ecdd5ad7c5c197aa208938135e3c65e768e9
...@@ -22,19 +22,24 @@ class EditorController extends Controller ...@@ -22,19 +22,24 @@ class EditorController extends Controller
* @access public * @access public
* @return void * @return void
*/ */
public function formatAction(Request $request) public function formatAction(Request $request, $text)
{ {
// Get markdown parser service // Get markdown parser service
$parser = $this->container->get('markdown.parser'); $parser = $this->container->get('markdown.parser');
// Get 'text' variable from POST if (empty($text)) {
$text = $request->request->get('text');
// Get 'text' variable from POST
$text = $request->request->get('text');
}
// Parse the requested data // Parse the requested data
$html = $parser->transform($text); $html = $parser->transform($text);
// Response the parsed data // Response the parsed data
return new Response($html, 200); return $this->render('JityHomepageBundle:Editor:format.html.twig', array(
'content' => $html
));
} }
/** /**
......
...@@ -21,41 +21,36 @@ class LoadDevData extends AbstractFixture implements OrderedFixtureInterface ...@@ -21,41 +21,36 @@ class LoadDevData extends AbstractFixture implements OrderedFixtureInterface
->setSlug('home') ->setSlug('home')
->setTitle('Über mich') ->setTitle('Über mich')
->setContent('<img src="{{ asset("bundles/jityhomepage/img/myself-cc3-300px.png") }}" alt="" class="img-polaroid pull-left" /> ->setContent('<img src="{{ asset("bundles/jityhomepage/img/myself-cc3-300px.png") }}" alt="" class="img-polaroid pull-left" />
<p> Mein Name ist Hermann Mayer, ich wurde am 02. August im Jahre 1992 in Berlin geboren und bin
Mein Name ist Hermann Mayer, ich wurde am 02. August im Jahre 1992 in Berlin geboren und bin in einem kleinen Örtchen Namens Augsdorf, dass im ehemaligen Mansfelder Land liegt, aufgewachsen.
in einem kleinen Örtchen Namens Augsdorf, dass im ehemaligen Mansfelder Land liegt, aufgewachsen.
</p> Heute heißt dieser Landkreis, in Sachsen-Anhalt, Mansfeld-Südharz. Eine frohe und aufgeschlossene
<p> Natur wurde mir in die Wiege gelegt und diese habe ich mir bis heute erhalten können, nicht
Heute heißt dieser Landkreis, in Sachsen-Anhalt, Mansfeld-Südharz. Eine frohe und aufgeschlossene zuletzt auch durch die Art und Weise wie ich manche Dinge bewerte und durch die Fähigkeit mich
Natur wurde mir in die Wiege gelegt und diese habe ich mir bis heute erhalten können, nicht selbst nicht immer zu ernst zu nehmen.
zuletzt auch durch die Art und Weise wie ich manche Dinge bewerte und durch die Fähigkeit mich
selbst nicht immer zu ernst zu nehmen. Verschiedene Hobbys haben sich im Laufe meines Lebens heraus kristallisiert, dazu gehört das
</p> leidenschaftliche Motorradfahren, das Programmieren und Verwirklichen von Projekten in meiner
<p> Freizeit, sowie der Drang meine Kreativität durch Gedichte oder Digitale Kunst auszudrücken.
Verschiedene Hobbys haben sich im Laufe meines Lebens heraus kristallisiert, dazu gehört das Ich habe die Angewohnheit meine Umwelt genau zu beobachten und zu analysieren, auch völlig
leidenschaftliche Motorradfahren, das Programmieren und Verwirklichen von Projekten in meiner unbewusst. Dies ist oftmals auch eine Quelle für Inspirationen, jeglicher Art.
Freizeit, sowie der Drang meine Kreativität durch Gedichte oder Digitale Kunst auszudrücken.
Ich habe die Angewohnheit meine Umwelt genau zu beobachten und zu analysieren, auch völlig Des Weiteren bin ich ein Mensch der Musik liebt, und sie braucht. Ich habe fast immer Musik an,
unbewusst. Dies ist oftmals auch eine Quelle für Inspirationen, jeglicher Art. egal ob Radio oder Alben meiner Lieblings Interpreten, sei es Unterwegs per N900 oder zu Hause mit
</p> der dortigen Workstation. Musik trägt zu meiner Entspannung bei, fördert aber auch die
<p> Konzentrationsfähigkeit in meinem Falle. Eine weitere Eigenheit von mir ist der unerschöpfliche
Des Weiteren bin ich ein Mensch der Musik liebt, und sie braucht. Ich habe fast immer Musik an, Wunsch nach Wissen, wenn mich etwas interessiert erkunde ich es tiefgründig. Ich verbringe
egal ob Radio oder Alben meiner Lieblings Interpreten, sei es Unterwegs per N900 oder zu Hause mit dadurch viele Stunden meines Tages mit dem Lesen von Büchern (digitaler oder gedruckter Art)
der dortigen Workstation. Musik trägt zu meiner Entspannung bei, fördert aber auch die oder dem recherchieren im Internet.
Konzentrationsfähigkeit in meinem Falle. Eine weitere Eigenheit von mir ist der unerschöpfliche
Wunsch nach Wissen, wenn mich etwas interessiert erkunde ich es tiefgründig. Ich verbringe Zudem liebe ich es zu Planen und zu Organisieren. Manchmal verbringe ich Tage mit der gedanklichen
dadurch viele Stunden meines Tages mit dem Lesen von Büchern (digitaler oder gedruckter Art) Ausgestaltung eines Planes, der in Jahren, Jahrzehnten oder nie zum Einsatz kommen wird. Außerdem
oder dem recherchieren im Internet. bin ich kontaktfreudig, wortgewandt und tolerant in jedem Aspekt. Meine Art ist direkt und offen,
</p> ich sage was ich denke, auch wenn es nicht immer das ist was andere gern hören wollen. Trotzdem
<p> pflege ich meine sozialen Kontakte und Bindungen und versuche mich in die Probleme anderer
Zudem liebe ich es zu Planen und zu Organisieren. Manchmal verbringe ich Tage mit der gedanklichen hineinzudenken um sie zu verstehen. Zudem bin ich hilfsbereit, selbst wenn dies für mich
Ausgestaltung eines Planes, der in Jahren, Jahrzehnten oder nie zum Einsatz kommen wird. Außerdem zusätzliche Arbeit bedeutet.
bin ich kontaktfreudig, wortgewandt und tolerant in jedem Aspekt. Meine Art ist direkt und offen, ')
ich sage was ich denke, auch wenn es nicht immer das ist was andere gern hören wollen. Trotzdem
pflege ich meine sozialen Kontakte und Bindungen und versuche mich in die Probleme anderer
hineinzudenken um sie zu verstehen. Zudem bin ich hilfsbereit, selbst wenn dies für mich
zusätzliche Arbeit bedeutet.
</p>')
->setCategory($this->getReference('default-category')) ->setCategory($this->getReference('default-category'))
->setSidebar($this->getReference('default-sidebar')) ->setSidebar($this->getReference('default-sidebar'))
->setNavigation($this->getReference('default-navigation')) ->setNavigation($this->getReference('default-navigation'))
......
editor_format: editor_format:
pattern: /format pattern: /format
defaults: { _controller: JityHomepageBundle:Editor:format } defaults: { _controller: JityHomepageBundle:Editor:format, text: '' }
requirements: { _method: post } requirements: { _method: post }
...@@ -156,12 +156,19 @@ p { ...@@ -156,12 +156,19 @@ p {
margin-top: 10px; margin-top: 10px;
} }
@media (max-width: 979px) { @media (max-width: 767px) {
#sidebar { #sidebar {
border-left: none; border-left: none;
padding-left: 0px; padding-left: 0px;
margin-left: 0px; margin-left: 0px;
border-top: 2px solid #722C0F;
margin-top: 20px;
} }
}
@media (max-width: 979px) {
.hero-unit .btn { .hero-unit .btn {
margin-top: 15px; margin-top: 15px;
...@@ -286,5 +293,28 @@ input::-moz-focus-inner, button::-moz-focus-inner { ...@@ -286,5 +293,28 @@ input::-moz-focus-inner, button::-moz-focus-inner {
border: 0; border: 0;
} }
#previewCage {
border-top: 2px solid #722C0F;
margin-top: 20px;
background-color: #151515;
border-radius: 6px 6px 6px 6px;
margin-bottom: 30px;
padding: 60px;
display: none;
}
pre {
background-color: #282624;
color: #8F8F8F;
}
hr {
border: none;
color: #722C0F;
background-color: #722C0F;
height: 2px;
}
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
{% block layout_content %} {% block layout_content %}
{{ eval(page.content)|raw }} {% render 'JityHomepageBundle:Editor:format' with {'text': page.content } %}
{% endblock %} {% endblock %}
<div class="modal hide fade" id="editor_modal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"> <div class="modal hide fade" id="editor_modal" tabindex="-1" role="dialog" aria-labelledby="editor_label" aria-hidden="true">
<div class="modal-header"> <div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button> <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h3 id="myModalLabel">{{ title|raw }}</h3> <h3 id="editor_label">{{ title|raw }}</h3>
</div> </div>
<div class="modal-body"> <div class="modal-body">
<div id="editor"></div> <div id="editor"></div>
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<button class="btn btn-primary"><i class="icon-pencil icon-white"></i> Änderung speichern</button> <button class="btn btn-primary" onclick="$('#editor_modal').modal('hide');"><i class="icon-pencil icon-white"></i> Änderung speichern</button>
</div> </div>
</div> </div>
...@@ -15,26 +15,36 @@ ...@@ -15,26 +15,36 @@
<script type="text/javascript"> <script type="text/javascript">
var readyStateCheckInterval = setInterval(function() { $(document).ready(function() {
if (document.readyState === "complete") { // Build new Editor instance
var editor = ace.edit("editor");
editor.setTheme("ace/theme/tomorrow_night");
editor.getSession().setMode("ace/mode/{{ mode }}");
var editor = ace.edit("editor"); // Event hook for displaying
editor.setTheme("ace/theme/tomorrow_night"); $('#editor_modal').on('shown', function () {
editor.getSession().setMode("ace/mode/{{ mode }}");
document.getElementById('editor').style.fontSize='14px'; // Focus on editor on modal show
editor.focus();
var textarea = $('{{ syncElement|raw }}'); // To count total no. of lines
editor.getSession().setValue(textarea.val()); var lines = editor.getSession().getValue().split("\n").length;
editor.getSession().on('change', function(){ // Go to end of document
textarea.val(editor.getSession().getValue()); editor.gotoLine(lines);
}); });
clearInterval(readyStateCheckInterval); // Sync editor with textarea
} document.getElementById('editor').style.fontSize='14px';
}, 10);
var textarea = $('{{ syncElement|raw }}');
editor.getSession().setValue(textarea.val());
editor.getSession().on('change', function(){
textarea.val(editor.getSession().getValue());
});
});
</script> </script>
...@@ -21,6 +21,11 @@ ...@@ -21,6 +21,11 @@
Zurück zur Liste Zurück zur Liste
</a> </a>
<a href="#" id="previewBtn" class="btn btn-danger">
<i class="icon-eye-open icon-white"></i>
Vorschau
</a>
<a href="javascript:document.delete_form.submit();" class="btn btn-danger"> <a href="javascript:document.delete_form.submit();" class="btn btn-danger">
<i class="icon-remove icon-white"></i> <i class="icon-remove icon-white"></i>
Löschen Löschen
...@@ -34,5 +39,31 @@ ...@@ -34,5 +39,31 @@
{{ form_widget(delete_form) }} {{ form_widget(delete_form) }}
</form> </form>
{% render 'JityHomepageBundle:Editor:build' with {'syncElement': 'textarea[name="jity_homepagebundle_pagetype[content]"]'} %}
<a name="preview"></a>
<div id="previewCage"></div>
<script type="text/javascript">
$(document).ready(function() {
$('#previewBtn').click(function (){
$.post(
'{{ path('editor_format') }}',
{text: $('#jity_homepagebundle_pagetype_content').val()},
function(data) {
$('#previewCage').html(data).css('display', 'block');
$('html,body').animate({scrollTop: $("a[name=preview]").offset().top},'slow');
});
return false;
});
});
</script>
{% endblock %} {% endblock %}
...@@ -22,11 +22,40 @@ ...@@ -22,11 +22,40 @@
<i class="icon-share-alt icon-white"></i> <i class="icon-share-alt icon-white"></i>
Zurück zur Liste Zurück zur Liste
</a> </a>
<a href="#" id="previewBtn" class="btn btn-danger">
<i class="icon-eye-open icon-white"></i>
Vorschau
</a>
</div> </div>
</form> </form>
{% render 'JityHomepageBundle:Editor:build' with {'syncElement': 'textarea[name="jity_homepagebundle_pagetype[content]"]'} %} {% render 'JityHomepageBundle:Editor:build' with {'syncElement': 'textarea[name="jity_homepagebundle_pagetype[content]"]'} %}
<a name="preview"></a>
<div id="previewCage"></div>
<script type="text/javascript">
$(document).ready(function() {
$('#previewBtn').click(function (){
$.post(
'{{ path('editor_format') }}',
{text: $('#jity_homepagebundle_pagetype_content').val()},
function(data) {
$('#previewCage').html(data).css('display', 'block');
$('html,body').animate({scrollTop: $("a[name=preview]").offset().top},'slow');
});
return false;
});
});
</script>
{% endblock %} {% endblock %}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment