flightdeck editor extension / capability edit fix

This commit is contained in:
zalun 2010-02-24 14:13:30 +00:00
Родитель 7f9d38433b
Коммит fec6e2e1a9
6 изменённых файлов: 57 добавлений и 43 удалений

Просмотреть файл

@ -10,12 +10,11 @@
<script src="/media/js/lib/mootools-1.2.4.4-more.js"></script>
<script src="/media/roar/Roar.js"></script>
<script src="/media/jetpack/js/Sidebar.js"></script>
{% block head %}
{% endblock %}
{% block roar_css %}<link href="/media/roar/Roar.css" rel="stylesheet" type="text/css">{% endblock %}
<script src="/media/js/FlightDeck.js"></script>
<script src="/media/js/FlightDeck.Roar.js"></script>
<script src="/media/js/FlightDeck.Modal.js"></script>
{% block head %}{% endblock %}
{% block roar_css %}<link href="/media/roar/Roar.css" rel="stylesheet" type="text/css">{% endblock %}
<script type='text/javascript'>
var fd;
window.addEvent('domready', function() {

Просмотреть файл

@ -62,36 +62,13 @@ var Capability = new Class({
*/
instantiateEditors: function() {
// do not create an editor for the description if loaded as dependency
if (! this.options.is_dependency) {
this.description_el = new Editor(this.options.description_el).hide();
fd.editors.push(this.description_el);
}
},
/*
* Method: initializeEditorSwitches
*/
initializeEditorSwitches: function() {
// TODO: this should be done with the event broadcast
// to not bother about new dependencies added
var switch_mode_on = function() {
$$('.UI_File_Selected').each(function(el) {
el.switch_mode_off();
});
this.removeClass('UI_File_Normal')
.addClass('UI_File_Selected')
};
var switch_mode_off = function() {
this.removeClass('UI_File_Selected')
.addClass('UI_File_Normal')
}
$$('.UI_File_Listing li').each(function(file_el) {
file_el.switch_mode_on = switch_mode_on;
file_el.switch_mode_off = switch_mode_off;
});
$$('.UI_File_Listing li a').addEvent('click', function() {
this.getParent('li').switch_mode_on();
});
this.switch_description_el = $(this.options.switch_description_id);
if (this.switch_description_el) {
this.switch_description_el.addEvent('click', this.switchToDescription.bind(this));
@ -100,7 +77,7 @@ var Capability = new Class({
/*
* Method: switchToDescription
*/
switchToDescription: function() {
switchToDescription: function(e) {
fd.hideEditors();
this.description_el.show();
},

Просмотреть файл

@ -0,0 +1,41 @@
/*
* Extending Flightdeck with Editor functionality
*/
FlightDeck = Class.refactor(FlightDeck,{
options: {
file_selected_class: 'UI_File_Selected',
file_normal_class: 'UI_File_Normal',
file_listing_class: 'UI_File_Listing'
},
initialize: function(options) {
this.setOptions(options);
this.previous(options);
var file_selected_class = this.options.file_selected_class;
var file_normal_class = this.options.file_normal_class;
var switch_mode_on = function() {
console.log('yeah');
$$('.' + file_selected_class).each(function(el) {
el.switch_mode_off();
});
this.removeClass(file_normal_class)
.addClass(file_selected_class);
};
var switch_mode_off = function() {
this.removeClass(file_selected_class)
.addClass(file_normal_class);
};
$$('.'+this.options.file_listing_class + ' li').each(function(file_el) {
file_el.switch_mode_on = switch_mode_on;
file_el.switch_mode_off = switch_mode_off;
});
$$('.'+this.options.file_listing_class).each(function(container) {
container.addEvent('relay:click(li a)', function(e, el) {
console.log(el);
$(el).getParent('li').switch_mode_on();
});
});
}
});

Просмотреть файл

@ -11,7 +11,7 @@
item = new Capability({
slug: '{{ capability.slug }}',
name: '{{ capability.name }}',
description: '{{ capability.description }}',
description: '{{ capability.description|escapejs }}',
creator: '{{ capability.creator }}',
edit_url: '{{ capability.get_absolute_url }}',
update_url: '{{ capability.get_update_url }}',
@ -20,8 +20,8 @@
version: {
author: '{{ version.author }}',
name: '{{ version.name }}',
description: '{{ version.description }}',
content: '{{ version.content }}',
description: '{{ version.description|escapejs }}',
content: '{{ version.content|escapejs }}',
is_base: {{ version.is_base|yesno:"true,false" }},
edit_url: '{{ version.get_absolute_url }}',
update_url: '{{ version.get_update_url }}',
@ -61,20 +61,13 @@
<span class="UI_OC"></span>
<span class="UI_Sidebar_Toggler_Icon"></span>
</a></h3>
<div class="UI_Sidebar_ItemCont">
<ul class="UI_File_Listing">
{% for cap in version.capabilities.all %}
<li class="UI_File_Normal" id="{{ cap|dependency_link_id }}">
<a title="{{ cap.name }}" href="#">{{ cap.name }} <span></span></a>
</li>
{% endfor %}
</ul>
{% include "_dependency_list.html" %}
</div>
</section>
<section id="info" class="UI_Side_Item">
<h3 class="UI_Sidebar_Toggler info opened closed"><a title="Info" href="#">
<h3 class="UI_Sidebar_Toggler info opened"><a title="Info" href="#">
Info
<span class="UI_OC"></span>
<span class="UI_Sidebar_Toggler_Icon"></span>
@ -131,7 +124,10 @@
{% include "_editor_menu.html" %}
<div id="editor-wrapper">
<textarea id="capability_description" name="capability_description" class="UI_Editor_Area bespin">{{ capability.description }}</textarea>
<textarea id="version_content" name="version_content" class="UI_Editor_Area bespin" data-bespinoptions='{"stealFocus":true}'>{{ version.content }}</textarea>
<textarea id="version_content" name="version_content" class="UI_Editor_Area bespin">{{ version.content }}</textarea>
<textarea id="version_description" name="version_description" class="UI_Editor_Area bespin">{{ version.description }}</textarea>
{% for cap in version.capabilities.all %}
<textarea id="dependency_content_{{ cap.slug }}" class="UI_Editor_Area" name="dependency_content_{{ cap.slug }}">{{ cap.version.content }}</textarea>
{% endfor %}
</div>
{% endblock %}

Просмотреть файл

@ -2,6 +2,7 @@
{% load jetpack_extras %}
{% block head %}
<link rel="stylesheet" href="/media/jetpack/css/UI.Editor.css" type="text/css" media="screen">
<script src="/media/jetpack/js/FlightDeck.Editor.js"></script>
<script src="/media/jetpack/js/Create.js"></script>
<script src="/media/jetpack/js/Editor.js"></script>
<script src="/media/jetpack/js/Capability.js"></script>

Просмотреть файл

@ -73,7 +73,7 @@
</section>
<section id="info" class="UI_Side_Item">
<h3 class="UI_Sidebar_Toggler info opened closed"><a title="Info" href="#">
<h3 class="UI_Sidebar_Toggler info opened"><a title="Info" href="#">
Info
<span class="UI_OC"></span>
<span class="UI_Sidebar_Toggler_Icon"></span>