From 5ab3047bd270b50d3f356763dff7f9466653045a Mon Sep 17 00:00:00 2001 From: John Bintz Date: Wed, 23 Sep 2009 21:34:06 -0400 Subject: [PATCH] rearrange things and get short tag buttons working --- classes/WhatDidTheySayAdmin.php | 32 ++++--- classes/{ => partials}/_capabilities.inc | 0 classes/{ => partials}/_change-languages.inc | 0 classes/{ => partials}/_default-styles.inc | 0 classes/{ => partials}/_misc-options.inc | 0 classes/{ => partials}/_shortcodes-info.inc | 14 +-- classes/{ => partials}/admin.inc | 0 classes/{ => partials}/meta-box.inc | 20 +++-- css/wdts-admin.css | 7 +- js/edit-transcripts.js | 94 +++++++++++++++++++- 10 files changed, 135 insertions(+), 32 deletions(-) rename classes/{ => partials}/_capabilities.inc (100%) rename classes/{ => partials}/_change-languages.inc (100%) rename classes/{ => partials}/_default-styles.inc (100%) rename classes/{ => partials}/_misc-options.inc (100%) rename classes/{ => partials}/_shortcodes-info.inc (76%) rename classes/{ => partials}/admin.inc (100%) rename classes/{ => partials}/meta-box.inc (78%) diff --git a/classes/WhatDidTheySayAdmin.php b/classes/WhatDidTheySayAdmin.php index 68189f2..e48aec7 100644 --- a/classes/WhatDidTheySayAdmin.php +++ b/classes/WhatDidTheySayAdmin.php @@ -534,7 +534,7 @@ class WhatDidTheySayAdmin { * Handle admin_menu action. */ function admin_menu() { - global $plugin_page; + global $pagenow, $plugin_page; if (current_user_can('submit_transcriptions')) { add_options_page( @@ -548,24 +548,28 @@ class WhatDidTheySayAdmin { if ($plugin_page == "manage-wdts") { $this->read_language_file(); wp_enqueue_style('wdts-admin', plugin_dir_url(dirname(__FILE__)) . 'css/wdts-admin.css'); + wp_enqueue_style('wdts-defaults', plugin_dir_url(dirname(__FILE__)) . 'css/wdts-defaults.css'); $this->plugin_data = get_plugin_data($this->_parent_file); } wp_enqueue_script('scriptaculous-effects'); } - - if (current_user_can('approve_transcriptions')) { - add_meta_box( - 'manage-transcriptions', - __('Manage Transcriptions', 'what-did-they-say'), - array(&$this, 'manage_transcriptions_meta_box'), - 'post', - 'normal', - 'low' - ); - wp_enqueue_script('scriptaculous-effects'); + if (current_user_can('approve_transcriptions')) { + if (strpos($pagenow, "post") === 0) { + add_meta_box( + 'manage-transcriptions', + __('Manage Transcriptions', 'what-did-they-say'), + array(&$this, 'manage_transcriptions_meta_box'), + 'post', + 'normal', + 'low' + ); + + wp_enqueue_style('wdts-admin', plugin_dir_url(dirname(__FILE__)) . 'css/wdts-admin.css'); + wp_enqueue_script('scriptaculous-effects'); + } } } @@ -576,7 +580,7 @@ class WhatDidTheySayAdmin { $options = get_option('what-did-they-say-options'); $nonce = wp_create_nonce('what-did-they-say'); - include(dirname(__FILE__) . '/admin.inc'); + include('partials/admin.inc'); } /** @@ -597,7 +601,7 @@ class WhatDidTheySayAdmin { $transcript_options = new WDTSTranscriptOptions($post->ID); $nonce = wp_create_nonce('what-did-they-say'); - include(dirname(__FILE__) . '/meta-box.inc'); + include('partials/meta-box.inc'); } } diff --git a/classes/_capabilities.inc b/classes/partials/_capabilities.inc similarity index 100% rename from classes/_capabilities.inc rename to classes/partials/_capabilities.inc diff --git a/classes/_change-languages.inc b/classes/partials/_change-languages.inc similarity index 100% rename from classes/_change-languages.inc rename to classes/partials/_change-languages.inc diff --git a/classes/_default-styles.inc b/classes/partials/_default-styles.inc similarity index 100% rename from classes/_default-styles.inc rename to classes/partials/_default-styles.inc diff --git a/classes/_misc-options.inc b/classes/partials/_misc-options.inc similarity index 100% rename from classes/_misc-options.inc rename to classes/partials/_misc-options.inc diff --git a/classes/_shortcodes-info.inc b/classes/partials/_shortcodes-info.inc similarity index 76% rename from classes/_shortcodes-info.inc rename to classes/partials/_shortcodes-info.inc index 4f55802..316c648 100644 --- a/classes/_shortcodes-info.inc +++ b/classes/partials/_shortcodes-info.inc @@ -8,13 +8,13 @@ [dialog name="John" direction="(towards the house)"]Hey, where are the keys?[/dialog] -
-
-
-
-
-
-
+
+
Ext. The Old Man's House
+
John is walking down to the car parked in the driveway.
+
+ John + (towards the house) + Hey, where are the keys?
diff --git a/classes/admin.inc b/classes/partials/admin.inc similarity index 100% rename from classes/admin.inc rename to classes/partials/admin.inc diff --git a/classes/meta-box.inc b/classes/partials/meta-box.inc similarity index 78% rename from classes/meta-box.inc rename to classes/partials/meta-box.inc index 2ba3fc5..720dfbb 100644 --- a/classes/meta-box.inc +++ b/classes/partials/meta-box.inc @@ -43,6 +43,12 @@ +
+ + + +
+ ', 'delete': '', 'approved': '', - 'deleted': '' + 'deleted': '', + 'scene_heading': '', + 'scene_action': '', + 'dialog_name': '', + 'dialog_direction': '', + 'dialog_speech': '', }; - - var s = document.createElement('script'); - s.src = ''; - document.getElementsByTagName('head')[0].appendChild(s); - \ No newline at end of file + + \ No newline at end of file diff --git a/css/wdts-admin.css b/css/wdts-admin.css index 36c119b..c755f4f 100644 --- a/css/wdts-admin.css +++ b/css/wdts-admin.css @@ -52,4 +52,9 @@ #wdts-footer form { float: right; display: inline -} \ No newline at end of file +} + +#wdts-shorttags { + background-color: #DFDFDF; + padding: 3px +} diff --git a/js/edit-transcripts.js b/js/edit-transcripts.js index 625317a..aaa7c91 100644 --- a/js/edit-transcripts.js +++ b/js/edit-transcripts.js @@ -3,11 +3,93 @@ function switch_transcript() { (t.id == "wdts-transcripts-" + $F('wdts-language')) ? t.show() : t.hide(); }); } -switch_transcript(); -Event.observe(language_selector, 'change', switch_transcript); + +var WDTSInjector = Class.create({ + initialize: function(textarea, end) { + this.textarea = textarea; + this.end = end; + }, + inject: function(text, position) { + this.textarea.value = this.textarea.value.substr(0, position) + text + this.textarea.value.substr(position); + this.end += text.length; + }, + set_caret: function() { + if (this.textarea.setSelectionRange) { + this.textarea.focus(); + this.textarea.setSelectionRange(this.end, this.end); + } else if (this.textarea.createTextRange) { + var range = this.textarea.createTextRange(); + range.collapse(true); + range.moveEnd('character', this.end); + range.moveStart('character', this.end); + range.select(); + } + } +}); + +$$('#wdts-shorttags button').each(function(b) { + b.observe('click', function(e) { + Event.stop(e); + var current_transcript = $("wdts-transcripts-" + $F('wdts-language')); + if (current_transcript) { + if (document.selection) { + var range = document.selection.createRange(); + var stored_range = range.duplicate(); + stored_range.moveToElementText( element ); + stored_range.setEndPoint( 'EndToEnd', range ); + element.selectionStart = stored_range.text.length - range.text.length; + element.selectionEnd = element.selectionStart + range.text.length; + } + + var start = current_transcript.selectionStart; + var end = current_transcript.selectionEnd; + + var injector = new WDTSInjector(current_transcript, end); + + var new_content = (start == end); + var tag = b.id.replace('wdts-', ''); + switch (b.id) { + case 'wdts-scene-heading': + case 'wdts-scene-action': + var message = tag.replace('-', '_'); + if (new_content) { + var content = prompt(messages[message]); + if (content) { + injector.inject('[' + tag + ']' + content + "[/" + tag + "]\n", start); + } + } else { + injector.inject("[/" + tag + "]\n", end); + injector.inject('[' + tag + ']', start); + } + break; + case 'wdts-dialog': + var name = prompt(messages.dialog_name); + if (name) { + var direction = prompt(messages.dialog_direction); + var tag = '[dialog name="' + name + '"'; + if (direction) { tag += ' direction="' + direction + '"'; } + tag += ']'; + + if (new_content) { + var speech = prompt(messages.dialog_speech); + + tag += speech + "[/dialog]\n"; + + injector.inject(tag, start); + } else { + injector.inject("[/dialog]\n", end); + injector.inject(tag, start); + } + } + break; + } + injector.set_caret(); + } + }); +}); $$('.approve-transcript').each(function(b) { - Event.observe(b, 'click', function(e) { + b.observe('click', function(e) { Event.stop(e); var lang = b.parentNode.parentNode.select("input[name*=[language]]").shift(); var post_id = b.parentNode.parentNode.parentNode.select("input[name*=[post_id]]").shift(); @@ -88,4 +170,8 @@ $$('.delete-transcript').each(function(b) { } } }); -}); \ No newline at end of file +}); + +switch_transcript(); +Event.observe(window, 'load', switch_transcript); +Event.observe(language_selector, 'change', switch_transcript);