diff --git a/modules/photoannotation/controllers/admin_photoannotation.php b/modules/photoannotation/controllers/admin_photoannotation.php index e239e6b7..347c90de 100644 --- a/modules/photoannotation/controllers/admin_photoannotation.php +++ b/modules/photoannotation/controllers/admin_photoannotation.php @@ -28,13 +28,25 @@ class Admin_Photoannotation_Controller extends Admin_Controller { $form = $this->_get_form(); if ($form->validate()) { module::set_var( - "photoannotation", "showusers", $form->photoannotation->showusers->value, true); + "photoannotation", "noborder", $form->hoverphoto->noborder->value, true); module::set_var( - "photoannotation", "showfaces", $form->photoannotation->showfaces->value, true); + "photoannotation", "bordercolor", $form->hoverphoto->bordercolor->value); module::set_var( - "photoannotation", "shownotes", $form->photoannotation->shownotes->value, true); + "photoannotation", "noclickablehover", $form->hoverclickable->noclickablehover->value, true); module::set_var( - "photoannotation", "fullname", $form->photoannotation->fullname->value, true); + "photoannotation", "clickablehovercolor", $form->hoverclickable->clickablehovercolor->value); + module::set_var( + "photoannotation", "nohover", $form->hovernoclickable->nohover->value, true); + module::set_var( + "photoannotation", "hovercolor", $form->hovernoclickable->hovercolor->value); + module::set_var( + "photoannotation", "showusers", $form->legendsettings->showusers->value, true); + module::set_var( + "photoannotation", "showfaces", $form->legendsettings->showfaces->value, true); + module::set_var( + "photoannotation", "shownotes", $form->legendsettings->shownotes->value, true); + module::set_var( + "photoannotation", "fullname", $form->legendsettings->fullname->value, true); message::success(t("Your settings have been saved.")); url::redirect("admin/photoannotation"); } @@ -50,7 +62,25 @@ class Admin_Photoannotation_Controller extends Admin_Controller { private function _get_form() { $form = new Forge("admin/photoannotation/handler", "", "post", array("id" => "g-admin-form")); - $group = $form->group("photoannotation")->label(t("Photo annotation settings")); + $group = $form->group("hoverphoto")->label(t("Hovering over the photo")); + $group->checkbox("noborder")->label(t("Don't show borders.")) + ->checked(module::get_var("photoannotation", "noborder", false)); + $group->input("bordercolor")->label(t('Border color')) + ->value(module::get_var("photoannotation", "bordercolor", "000000")) + ->rules("valid_alpha_numeric|length[6]"); + $group = $form->group("hoverclickable")->label(t("Hovering over a clickable annotation")); + $group->checkbox("noclickablehover")->label(t("Don't show borders.")) + ->checked(module::get_var("photoannotation", "noclickablehover", false)); + $group->input("clickablehovercolor")->label(t('Border color')) + ->value(module::get_var("photoannotation", "clickablehovercolor", "00AD00")) + ->rules("valid_alpha_numeric|length[6]"); + $group = $form->group("hovernoclickable")->label(t("Hovering over a non-clickable annotation")); + $group->checkbox("nohover")->label(t("Don't show borders.")) + ->checked(module::get_var("photoannotation", "nohover", false)); + $group->input("hovercolor")->label(t('Border color')) + ->value(module::get_var("photoannotation", "hovercolor", "990000")) + ->rules("valid_alpha_numeric|length[6]"); + $group = $form->group("legendsettings")->label(t("Legend settings")); $group->checkbox("showusers")->label(t("Show face annotation below photo.")) ->checked(module::get_var("photoannotation", "showusers", false)); $group->checkbox("showfaces")->label(t("Show face annotation below photo.")) diff --git a/modules/photoannotation/controllers/photoannotation.php b/modules/photoannotation/controllers/photoannotation.php index 30f6ef65..3718d7bb 100644 --- a/modules/photoannotation/controllers/photoannotation.php +++ b/modules/photoannotation/controllers/photoannotation.php @@ -68,7 +68,7 @@ class photoannotation_Controller extends Controller { ->where("id", "=", $annotate_id) ->find(); if ($user_id > -1) { //Conversion user -> user - $this->_saveuser($user_id, $item_id, $str_x1, $str_y1, $str_x2, $str_y2, $description, $annotate_id); + $this->_saveuser($user_id, $item_id, $str_x1, $str_y1, $str_x2, $str_y2, $description); } elseif ($tag_data > -1) { //Conversion user -> face $this->_saveface($tag_data, $item_id, $str_x1, $str_y1, $str_x2, $str_y2, $description); $updateduser->delete(); //delete old user @@ -162,13 +162,21 @@ class photoannotation_Controller extends Controller { url::redirect($redir_uri); } - private function _saveuser($user_id, $item_id, $str_x1, $str_y1, $str_x2, $str_y2, $description, $annotate_id = "") { - if ($annotate_id == "") { + private function _saveuser($user_id, $item_id, $str_x1, $str_y1, $str_x2, $str_y2, $description) { + //Since we are associating a user we will remove any old annotation of this user on this photo + $item_old_users = ORM::factory("items_user") + ->where("user_id", "=", $user_id) + ->where("item_id", "=", $item_id) + ->find_all(); + if (count($item_old_users) > 1) { + foreach ($item_old_users as $item_old_user) { + $item_old_user->delete(); + } $item_user = ORM::factory("items_user"); + } elseif (count($item_old_users) > 0) { + $item_user = ORM::factory("items_user", $item_old_users[0]->id); } else { - $item_user = ORM::factory("items_user") - ->where("id", "=", $annotate_id) - ->find(); + $item_user = ORM::factory("items_user"); } $item_user->user_id = $user_id; $item_user->item_id = $item_id; @@ -215,4 +223,4 @@ class photoannotation_Controller extends Controller { $item_note->description = $description; $item_note->save(); } -} \ No newline at end of file +} diff --git a/modules/photoannotation/controllers/user_profile.php b/modules/photoannotation/controllers/user_profile.php deleted file mode 100644 index 20561c8e..00000000 --- a/modules/photoannotation/controllers/user_profile.php +++ /dev/null @@ -1,93 +0,0 @@ -where("user_id", "=", $id)->find_all(); - $children_count = count($item_users); - foreach ($item_users as $item_user) { - $item_thumb = ORM::factory("item") - ->viewable() - ->where("type", "!=", "album") - ->where("id", ">=", $item_user->item_id) - ->find(); - $item_thumbs[] = $item_thumb; - } - $page_size = module::get_var("gallery", "page_size", 9); - $page = (int) Input::instance()->get("page", "1"); - $offset = ($page-1) * $page_size; - $max_pages = max(ceil($children_count / $page_size), 1); - - // Make sure that the page references a valid offset - if ($page < 1) { - url::redirect($album->abs_url()); - } else if ($page > $max_pages) { - url::redirect($album->abs_url("page=$max_pages")); - } - - $v->set_global("page", $page); - $v->set_global("max_pages", $max_pages); - $v->set_global("page_size", $page_size); - $v->set_global("userid", $id); - $v->set_global("children", array_slice($item_thumbs, $offset, $page_size)); - $v->set_global("children_count", $children_count); - $v->content = new View("photoannotation_user_profile.html"); - $v->content->user = $user; - $v->content->contactable = - !$user->guest && $user->id != identity::active_user()->id && $user->email; - $v->content->editable = - identity::is_writable() && !$user->guest && $user->id == identity::active_user()->id; - $event_data = (object)array("user" => $user, "content" => array()); - module::event("show_user_profile", $event_data); - $v->content->info_parts = $event_data->content; - $v->content = new View("dynamic.html"); - print $v; - } - - public function contact($id) { - $user = identity::lookup_user($id); - print user_profile::get_contact_form($user); - } - - public function send($id) { - access::verify_csrf(); - $user = identity::lookup_user($id); - $form = user_profile::get_contact_form($user); - if ($form->validate()) { - Sendmail::factory() - ->to($user->email) - ->subject(html::clean($form->message->subject->value)) - ->header("Mime-Version", "1.0") - ->header("Content-type", "text/html; charset=UTF-8") - ->reply_to($form->message->reply_to->value) - ->message(html::purify($form->message->message->value)) - ->send(); - message::success(t("Sent message to %user_name", array("user_name" => $user->display_name()))); - json::reply(array("result" => "success")); - } else { - json::reply(array("result" => "error", "html" => (string)$form)); - } - } -} diff --git a/modules/photoannotation/css/colorpicker.css b/modules/photoannotation/css/colorpicker.css new file mode 100644 index 00000000..05b02b48 --- /dev/null +++ b/modules/photoannotation/css/colorpicker.css @@ -0,0 +1,161 @@ +.colorpicker { + width: 356px; + height: 176px; + overflow: hidden; + position: absolute; + background: url(../images/colorpicker_background.png); + font-family: Arial, Helvetica, sans-serif; + display: none; +} +.colorpicker_color { + width: 150px; + height: 150px; + left: 14px; + top: 13px; + position: absolute; + background: #f00; + overflow: hidden; + cursor: crosshair; +} +.colorpicker_color div { + position: absolute; + top: 0; + left: 0; + width: 150px; + height: 150px; + background: url(../images/colorpicker_overlay.png); +} +.colorpicker_color div div { + position: absolute; + top: 0; + left: 0; + width: 11px; + height: 11px; + overflow: hidden; + background: url(../images/colorpicker_select.gif); + margin: -5px 0 0 -5px; +} +.colorpicker_hue { + position: absolute; + top: 13px; + left: 171px; + width: 35px; + height: 150px; + cursor: n-resize; +} +.colorpicker_hue div { + position: absolute; + width: 35px; + height: 9px; + overflow: hidden; + background: url(../images/colorpicker_indic.gif) left top; + margin: -4px 0 0 0; + left: 0px; +} +.colorpicker_new_color { + position: absolute; + width: 60px; + height: 30px; + left: 213px; + top: 13px; + background: #f00; +} +.colorpicker_current_color { + position: absolute; + width: 60px; + height: 30px; + left: 283px; + top: 13px; + background: #f00; +} +.colorpicker input { + background-color: transparent; + border: 1px solid transparent; + position: absolute; + font-size: 10px; + font-family: Arial, Helvetica, sans-serif; + color: #898989; + top: 4px; + right: 11px; + text-align: right; + margin: 0; + padding: 0; + height: 11px; +} +.colorpicker_hex { + position: absolute; + width: 72px; + height: 22px; + background: url(../images/colorpicker_hex.png) top; + left: 212px; + top: 142px; +} +.colorpicker_hex input { + right: 6px; +} +.colorpicker_field { + height: 22px; + width: 62px; + background-position: top; + position: absolute; +} +.colorpicker_field span { + position: absolute; + width: 12px; + height: 22px; + overflow: hidden; + top: 0; + right: 0; + cursor: n-resize; +} +.colorpicker_rgb_r { + background-image: url(../images/colorpicker_rgb_r.png); + top: 52px; + left: 212px; +} +.colorpicker_rgb_g { + background-image: url(../images/colorpicker_rgb_g.png); + top: 82px; + left: 212px; +} +.colorpicker_rgb_b { + background-image: url(../images/colorpicker_rgb_b.png); + top: 112px; + left: 212px; +} +.colorpicker_hsb_h { + background-image: url(../images/colorpicker_hsb_h.png); + top: 52px; + left: 282px; +} +.colorpicker_hsb_s { + background-image: url(../images/colorpicker_hsb_s.png); + top: 82px; + left: 282px; +} +.colorpicker_hsb_b { + background-image: url(../images/colorpicker_hsb_b.png); + top: 112px; + left: 282px; +} +.colorpicker_submit { + position: absolute; + width: 22px; + height: 22px; + background: url(../images/colorpicker_submit.png) top; + left: 322px; + top: 142px; + overflow: hidden; +} +.colorpicker_focus { + background-position: center; +} +.colorpicker_hex.colorpicker_focus { + background-position: bottom; +} +.colorpicker_submit.colorpicker_focus { + background-position: bottom; +} +.colorpicker_slider { + background-position: bottom; +} diff --git a/modules/photoannotation/css/photoannotation.css b/modules/photoannotation/css/photoannotation.css index 9ec14368..de3e6f87 100644 --- a/modules/photoannotation/css/photoannotation.css +++ b/modules/photoannotation/css/photoannotation.css @@ -10,20 +10,15 @@ position: relative; } .image-annotate-area { - border: 1px solid #000000; position: absolute; cursor: default; } .image-annotate-area div { - border: 1px solid #FFFFFF; display: block; } .image-annotate-area-editable { cursor: pointer; } -.image-annotate-area-editable-hover div { - border-color: #00AD00 !important; -} .image-annotate-note { background: #000000 none repeat scroll 0 0; color: #FFFFFF; @@ -45,7 +40,6 @@ #image-annotate-edit-form { background: #FFFFFF none repeat scroll 0 0; border: 1px solid #000000; - height: 300px; padding: 7px; position: absolute; width: 250px; diff --git a/modules/photoannotation/helpers/photoannotation_event.php b/modules/photoannotation/helpers/photoannotation_event.php index b7e1e15c..ca5c5daf 100644 --- a/modules/photoannotation/helpers/photoannotation_event.php +++ b/modules/photoannotation/helpers/photoannotation_event.php @@ -74,6 +74,13 @@ class photoannotation_event_Core { if (count($existingNotes) > 0) { db::build()->delete("items_notes")->where("item_id", "=", $item->id)->execute(); } + + $existingUsers = ORM::factory("items_user") + ->where("item_id", "=", $item->id) + ->find_all(); + if (count($existingUsers) > 0) { + db::build()->delete("items_users")->where("item_id", "=", $item->id)->execute(); + } } static function user_deleted($old) { @@ -93,4 +100,42 @@ class photoannotation_event_Core { ->label(t("Photo Annotation")) ->url(url::site("admin/photoannotation"))); } + + static function show_user_profile($data) { + $view = new View("dynamic.html"); + //load thumbs + $item_users = ORM::factory("items_user")->where("user_id", "=", $data->user->id)->find_all(); + $children_count = count($item_users); + foreach ($item_users as $item_user) { + $item_thumb = ORM::factory("item") + ->viewable() + ->where("type", "!=", "album") + ->where("id", ">=", $item_user->item_id) + ->find(); + $item_thumbs[] = $item_thumb; + } + $page_size = module::get_var("gallery", "page_size", 9); + $page = (int) Input::instance()->get("page", "1"); + $offset = ($page-1) * $page_size; + $max_pages = max(ceil($children_count / $page_size), 1); + + // Make sure that the page references a valid offset + if ($page < 1) { + url::redirect($album->abs_url()); + } else if ($page > $max_pages) { + url::redirect($album->abs_url("page=$max_pages")); + } + $view->set_global("page", $page); + $view->set_global("max_pages", $max_pages); + $view->set_global("page_size", $page_size); + $view->set_global("children", array_slice($item_thumbs, $offset, $page_size));; + $view->set_global("children_count", $children_count); + $view->set_global("total", $max_pages); + $view->set_global("position", t("Page") ." ". $page); + if ($children_count > 0) { + $data->content[] = (object)array("title" => t("Photos"), "view" => $view); + } + } + + } diff --git a/modules/photoannotation/helpers/photoannotation_theme.php b/modules/photoannotation/helpers/photoannotation_theme.php index cbea80d1..844fab8d 100644 --- a/modules/photoannotation/helpers/photoannotation_theme.php +++ b/modules/photoannotation/helpers/photoannotation_theme.php @@ -22,6 +22,41 @@ class photoannotation_theme_Core { if ($theme->page_subtype == "photo") { $theme->css("photoannotation.css"); $theme->script("jquery.annotate.js"); + $noborder = module::get_var("photoannotation", "noborder", false); + $noclickablehover = module::get_var("photoannotation", "noclickablehover", false); + $nohover = module::get_var("photoannotation", "nohover", false); + $bordercolor = "#". module::get_var("photoannotation", "bordercolor", "000000"); + $v = "\n"; + return $v; } } @@ -31,10 +66,11 @@ class photoannotation_theme_Core { } } - static function dynamic_top($theme) { - return new View("photoannotation_user_profile.html"); - if ($theme->page_type == "photoannotationuserprofile") { - return new View("photoannotation_user_profile.html"); + static function admin_head($theme) { + if (strpos($theme->content->kohana_filename, "admin_photoannotation.html.php")) { + $theme->css("colorpicker.css"); + $theme->script("colorpicker.js"); } } + } diff --git a/modules/photoannotation/images/blank.gif b/modules/photoannotation/images/blank.gif new file mode 100644 index 00000000..75b945d2 Binary files /dev/null and b/modules/photoannotation/images/blank.gif differ diff --git a/modules/photoannotation/images/colorpicker_background.png b/modules/photoannotation/images/colorpicker_background.png new file mode 100644 index 00000000..8401572f Binary files /dev/null and b/modules/photoannotation/images/colorpicker_background.png differ diff --git a/modules/photoannotation/images/colorpicker_hex.png b/modules/photoannotation/images/colorpicker_hex.png new file mode 100644 index 00000000..4e532d7c Binary files /dev/null and b/modules/photoannotation/images/colorpicker_hex.png differ diff --git a/modules/photoannotation/images/colorpicker_hsb_b.png b/modules/photoannotation/images/colorpicker_hsb_b.png new file mode 100644 index 00000000..dfac595d Binary files /dev/null and b/modules/photoannotation/images/colorpicker_hsb_b.png differ diff --git a/modules/photoannotation/images/colorpicker_hsb_h.png b/modules/photoannotation/images/colorpicker_hsb_h.png new file mode 100644 index 00000000..3977ed9f Binary files /dev/null and b/modules/photoannotation/images/colorpicker_hsb_h.png differ diff --git a/modules/photoannotation/images/colorpicker_hsb_s.png b/modules/photoannotation/images/colorpicker_hsb_s.png new file mode 100644 index 00000000..a2a69973 Binary files /dev/null and b/modules/photoannotation/images/colorpicker_hsb_s.png differ diff --git a/modules/photoannotation/images/colorpicker_indic.gif b/modules/photoannotation/images/colorpicker_indic.gif new file mode 100644 index 00000000..f9fa95e2 Binary files /dev/null and b/modules/photoannotation/images/colorpicker_indic.gif differ diff --git a/modules/photoannotation/images/colorpicker_overlay.png b/modules/photoannotation/images/colorpicker_overlay.png new file mode 100644 index 00000000..561cdd9c Binary files /dev/null and b/modules/photoannotation/images/colorpicker_overlay.png differ diff --git a/modules/photoannotation/images/colorpicker_rgb_b.png b/modules/photoannotation/images/colorpicker_rgb_b.png new file mode 100644 index 00000000..dfac595d Binary files /dev/null and b/modules/photoannotation/images/colorpicker_rgb_b.png differ diff --git a/modules/photoannotation/images/colorpicker_rgb_g.png b/modules/photoannotation/images/colorpicker_rgb_g.png new file mode 100644 index 00000000..72b32760 Binary files /dev/null and b/modules/photoannotation/images/colorpicker_rgb_g.png differ diff --git a/modules/photoannotation/images/colorpicker_rgb_r.png b/modules/photoannotation/images/colorpicker_rgb_r.png new file mode 100644 index 00000000..4855fe03 Binary files /dev/null and b/modules/photoannotation/images/colorpicker_rgb_r.png differ diff --git a/modules/photoannotation/images/colorpicker_select.gif b/modules/photoannotation/images/colorpicker_select.gif new file mode 100644 index 00000000..599f7f13 Binary files /dev/null and b/modules/photoannotation/images/colorpicker_select.gif differ diff --git a/modules/photoannotation/images/colorpicker_submit.png b/modules/photoannotation/images/colorpicker_submit.png new file mode 100644 index 00000000..566fe2dd Binary files /dev/null and b/modules/photoannotation/images/colorpicker_submit.png differ diff --git a/modules/photoannotation/images/custom_background.png b/modules/photoannotation/images/custom_background.png new file mode 100644 index 00000000..cf55ffdd Binary files /dev/null and b/modules/photoannotation/images/custom_background.png differ diff --git a/modules/photoannotation/images/custom_hex.png b/modules/photoannotation/images/custom_hex.png new file mode 100644 index 00000000..888f4444 Binary files /dev/null and b/modules/photoannotation/images/custom_hex.png differ diff --git a/modules/photoannotation/images/custom_hsb_b.png b/modules/photoannotation/images/custom_hsb_b.png new file mode 100644 index 00000000..2f99dae8 Binary files /dev/null and b/modules/photoannotation/images/custom_hsb_b.png differ diff --git a/modules/photoannotation/images/custom_hsb_h.png b/modules/photoannotation/images/custom_hsb_h.png new file mode 100644 index 00000000..a217e921 Binary files /dev/null and b/modules/photoannotation/images/custom_hsb_h.png differ diff --git a/modules/photoannotation/images/custom_hsb_s.png b/modules/photoannotation/images/custom_hsb_s.png new file mode 100644 index 00000000..7826b415 Binary files /dev/null and b/modules/photoannotation/images/custom_hsb_s.png differ diff --git a/modules/photoannotation/images/custom_indic.gif b/modules/photoannotation/images/custom_indic.gif new file mode 100644 index 00000000..222fb94c Binary files /dev/null and b/modules/photoannotation/images/custom_indic.gif differ diff --git a/modules/photoannotation/images/custom_rgb_b.png b/modules/photoannotation/images/custom_rgb_b.png new file mode 100644 index 00000000..80764e5d Binary files /dev/null and b/modules/photoannotation/images/custom_rgb_b.png differ diff --git a/modules/photoannotation/images/custom_rgb_g.png b/modules/photoannotation/images/custom_rgb_g.png new file mode 100644 index 00000000..fc9778be Binary files /dev/null and b/modules/photoannotation/images/custom_rgb_g.png differ diff --git a/modules/photoannotation/images/custom_rgb_r.png b/modules/photoannotation/images/custom_rgb_r.png new file mode 100644 index 00000000..91b0cd4c Binary files /dev/null and b/modules/photoannotation/images/custom_rgb_r.png differ diff --git a/modules/photoannotation/images/custom_submit.png b/modules/photoannotation/images/custom_submit.png new file mode 100644 index 00000000..cd202cd9 Binary files /dev/null and b/modules/photoannotation/images/custom_submit.png differ diff --git a/modules/photoannotation/images/select.png b/modules/photoannotation/images/select.png new file mode 100644 index 00000000..21213bfd Binary files /dev/null and b/modules/photoannotation/images/select.png differ diff --git a/modules/photoannotation/images/select2.png b/modules/photoannotation/images/select2.png new file mode 100644 index 00000000..2cd2cabe Binary files /dev/null and b/modules/photoannotation/images/select2.png differ diff --git a/modules/photoannotation/images/slider.png b/modules/photoannotation/images/slider.png new file mode 100644 index 00000000..8b03da96 Binary files /dev/null and b/modules/photoannotation/images/slider.png differ diff --git a/modules/photoannotation/js/colorpicker.js b/modules/photoannotation/js/colorpicker.js new file mode 100644 index 00000000..0c51991c --- /dev/null +++ b/modules/photoannotation/js/colorpicker.js @@ -0,0 +1,484 @@ +/** + * + * Color picker + * Author: Stefan Petre www.eyecon.ro + * + * Dual licensed under the MIT and GPL licenses + * + */ +(function ($) { + var ColorPicker = function () { + var + ids = {}, + inAction, + charMin = 65, + visible, + tpl = '
', + defaults = { + eventName: 'click', + onShow: function () {}, + onBeforeShow: function(){}, + onHide: function () {}, + onChange: function () {}, + onSubmit: function () {}, + color: 'ff0000', + livePreview: true, + flat: false + }, + fillRGBFields = function (hsb, cal) { + var rgb = HSBToRGB(hsb); + $(cal).data('colorpicker').fields + .eq(1).val(rgb.r).end() + .eq(2).val(rgb.g).end() + .eq(3).val(rgb.b).end(); + }, + fillHSBFields = function (hsb, cal) { + $(cal).data('colorpicker').fields + .eq(4).val(hsb.h).end() + .eq(5).val(hsb.s).end() + .eq(6).val(hsb.b).end(); + }, + fillHexFields = function (hsb, cal) { + $(cal).data('colorpicker').fields + .eq(0).val(HSBToHex(hsb)).end(); + }, + setSelector = function (hsb, cal) { + $(cal).data('colorpicker').selector.css('backgroundColor', '#' + HSBToHex({h: hsb.h, s: 100, b: 100})); + $(cal).data('colorpicker').selectorIndic.css({ + left: parseInt(150 * hsb.s/100, 10), + top: parseInt(150 * (100-hsb.b)/100, 10) + }); + }, + setHue = function (hsb, cal) { + $(cal).data('colorpicker').hue.css('top', parseInt(150 - 150 * hsb.h/360, 10)); + }, + setCurrentColor = function (hsb, cal) { + $(cal).data('colorpicker').currentColor.css('backgroundColor', '#' + HSBToHex(hsb)); + }, + setNewColor = function (hsb, cal) { + $(cal).data('colorpicker').newColor.css('backgroundColor', '#' + HSBToHex(hsb)); + }, + keyDown = function (ev) { + var pressedKey = ev.charCode || ev.keyCode || -1; + if ((pressedKey > charMin && pressedKey <= 90) || pressedKey == 32) { + return false; + } + var cal = $(this).parent().parent(); + if (cal.data('colorpicker').livePreview === true) { + change.apply(this); + } + }, + change = function (ev) { + var cal = $(this).parent().parent(), col; + if (this.parentNode.className.indexOf('_hex') > 0) { + cal.data('colorpicker').color = col = HexToHSB(fixHex(this.value)); + } else if (this.parentNode.className.indexOf('_hsb') > 0) { + cal.data('colorpicker').color = col = fixHSB({ + h: parseInt(cal.data('colorpicker').fields.eq(4).val(), 10), + s: parseInt(cal.data('colorpicker').fields.eq(5).val(), 10), + b: parseInt(cal.data('colorpicker').fields.eq(6).val(), 10) + }); + } else { + cal.data('colorpicker').color = col = RGBToHSB(fixRGB({ + r: parseInt(cal.data('colorpicker').fields.eq(1).val(), 10), + g: parseInt(cal.data('colorpicker').fields.eq(2).val(), 10), + b: parseInt(cal.data('colorpicker').fields.eq(3).val(), 10) + })); + } + if (ev) { + fillRGBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + } + setSelector(col, cal.get(0)); + setHue(col, cal.get(0)); + setNewColor(col, cal.get(0)); + cal.data('colorpicker').onChange.apply(cal, [col, HSBToHex(col), HSBToRGB(col)]); + }, + blur = function (ev) { + var cal = $(this).parent().parent(); + cal.data('colorpicker').fields.parent().removeClass('colorpicker_focus'); + }, + focus = function () { + charMin = this.parentNode.className.indexOf('_hex') > 0 ? 70 : 65; + $(this).parent().parent().data('colorpicker').fields.parent().removeClass('colorpicker_focus'); + $(this).parent().addClass('colorpicker_focus'); + }, + downIncrement = function (ev) { + var field = $(this).parent().find('input').focus(); + var current = { + el: $(this).parent().addClass('colorpicker_slider'), + max: this.parentNode.className.indexOf('_hsb_h') > 0 ? 360 : (this.parentNode.className.indexOf('_hsb') > 0 ? 100 : 255), + y: ev.pageY, + field: field, + val: parseInt(field.val(), 10), + preview: $(this).parent().parent().data('colorpicker').livePreview + }; + $(document).bind('mouseup', current, upIncrement); + $(document).bind('mousemove', current, moveIncrement); + }, + moveIncrement = function (ev) { + ev.data.field.val(Math.max(0, Math.min(ev.data.max, parseInt(ev.data.val + ev.pageY - ev.data.y, 10)))); + if (ev.data.preview) { + change.apply(ev.data.field.get(0), [true]); + } + return false; + }, + upIncrement = function (ev) { + change.apply(ev.data.field.get(0), [true]); + ev.data.el.removeClass('colorpicker_slider').find('input').focus(); + $(document).unbind('mouseup', upIncrement); + $(document).unbind('mousemove', moveIncrement); + return false; + }, + downHue = function (ev) { + var current = { + cal: $(this).parent(), + y: $(this).offset().top + }; + current.preview = current.cal.data('colorpicker').livePreview; + $(document).bind('mouseup', current, upHue); + $(document).bind('mousemove', current, moveHue); + }, + moveHue = function (ev) { + change.apply( + ev.data.cal.data('colorpicker') + .fields + .eq(4) + .val(parseInt(360*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.y))))/150, 10)) + .get(0), + [ev.data.preview] + ); + return false; + }, + upHue = function (ev) { + fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + $(document).unbind('mouseup', upHue); + $(document).unbind('mousemove', moveHue); + return false; + }, + downSelector = function (ev) { + var current = { + cal: $(this).parent(), + pos: $(this).offset() + }; + current.preview = current.cal.data('colorpicker').livePreview; + $(document).bind('mouseup', current, upSelector); + $(document).bind('mousemove', current, moveSelector); + }, + moveSelector = function (ev) { + change.apply( + ev.data.cal.data('colorpicker') + .fields + .eq(6) + .val(parseInt(100*(150 - Math.max(0,Math.min(150,(ev.pageY - ev.data.pos.top))))/150, 10)) + .end() + .eq(5) + .val(parseInt(100*(Math.max(0,Math.min(150,(ev.pageX - ev.data.pos.left))))/150, 10)) + .get(0), + [ev.data.preview] + ); + return false; + }, + upSelector = function (ev) { + fillRGBFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + fillHexFields(ev.data.cal.data('colorpicker').color, ev.data.cal.get(0)); + $(document).unbind('mouseup', upSelector); + $(document).unbind('mousemove', moveSelector); + return false; + }, + enterSubmit = function (ev) { + $(this).addClass('colorpicker_focus'); + }, + leaveSubmit = function (ev) { + $(this).removeClass('colorpicker_focus'); + }, + clickSubmit = function (ev) { + var cal = $(this).parent(); + var col = cal.data('colorpicker').color; + cal.data('colorpicker').origColor = col; + setCurrentColor(col, cal.get(0)); + cal.data('colorpicker').onSubmit(col, HSBToHex(col), HSBToRGB(col), cal.data('colorpicker').el); + }, + show = function (ev) { + var cal = $('#' + $(this).data('colorpickerId')); + cal.data('colorpicker').onBeforeShow.apply(this, [cal.get(0)]); + var pos = $(this).offset(); + var viewPort = getViewport(); + var top = pos.top + this.offsetHeight; + var left = pos.left; + if (top + 176 > viewPort.t + viewPort.h) { + top -= this.offsetHeight + 176; + } + if (left + 356 > viewPort.l + viewPort.w) { + left -= 356; + } + cal.css({left: left + 'px', top: top + 'px'}); + if (cal.data('colorpicker').onShow.apply(this, [cal.get(0)]) != false) { + cal.show(); + } + $(document).bind('mousedown', {cal: cal}, hide); + return false; + }, + hide = function (ev) { + if (!isChildOf(ev.data.cal.get(0), ev.target, ev.data.cal.get(0))) { + if (ev.data.cal.data('colorpicker').onHide.apply(this, [ev.data.cal.get(0)]) != false) { + ev.data.cal.hide(); + } + $(document).unbind('mousedown', hide); + } + }, + isChildOf = function(parentEl, el, container) { + if (parentEl == el) { + return true; + } + if (parentEl.contains) { + return parentEl.contains(el); + } + if ( parentEl.compareDocumentPosition ) { + return !!(parentEl.compareDocumentPosition(el) & 16); + } + var prEl = el.parentNode; + while(prEl && prEl != container) { + if (prEl == parentEl) + return true; + prEl = prEl.parentNode; + } + return false; + }, + getViewport = function () { + var m = document.compatMode == 'CSS1Compat'; + return { + l : window.pageXOffset || (m ? document.documentElement.scrollLeft : document.body.scrollLeft), + t : window.pageYOffset || (m ? document.documentElement.scrollTop : document.body.scrollTop), + w : window.innerWidth || (m ? document.documentElement.clientWidth : document.body.clientWidth), + h : window.innerHeight || (m ? document.documentElement.clientHeight : document.body.clientHeight) + }; + }, + fixHSB = function (hsb) { + return { + h: Math.min(360, Math.max(0, hsb.h)), + s: Math.min(100, Math.max(0, hsb.s)), + b: Math.min(100, Math.max(0, hsb.b)) + }; + }, + fixRGB = function (rgb) { + return { + r: Math.min(255, Math.max(0, rgb.r)), + g: Math.min(255, Math.max(0, rgb.g)), + b: Math.min(255, Math.max(0, rgb.b)) + }; + }, + fixHex = function (hex) { + var len = 6 - hex.length; + if (len > 0) { + var o = []; + for (var i=0; i -1) ? hex.substring(1) : hex), 16); + return {r: hex >> 16, g: (hex & 0x00FF00) >> 8, b: (hex & 0x0000FF)}; + }, + HexToHSB = function (hex) { + return RGBToHSB(HexToRGB(hex)); + }, + RGBToHSB = function (rgb) { + var hsb = { + h: 0, + s: 0, + b: 0 + }; + var min = Math.min(rgb.r, rgb.g, rgb.b); + var max = Math.max(rgb.r, rgb.g, rgb.b); + var delta = max - min; + hsb.b = max; + if (max != 0) { + + } + hsb.s = max != 0 ? 255 * delta / max : 0; + if (hsb.s != 0) { + if (rgb.r == max) { + hsb.h = (rgb.g - rgb.b) / delta; + } else if (rgb.g == max) { + hsb.h = 2 + (rgb.b - rgb.r) / delta; + } else { + hsb.h = 4 + (rgb.r - rgb.g) / delta; + } + } else { + hsb.h = -1; + } + hsb.h *= 60; + if (hsb.h < 0) { + hsb.h += 360; + } + hsb.s *= 100/255; + hsb.b *= 100/255; + return hsb; + }, + HSBToRGB = function (hsb) { + var rgb = {}; + var h = Math.round(hsb.h); + var s = Math.round(hsb.s*255/100); + var v = Math.round(hsb.b*255/100); + if(s == 0) { + rgb.r = rgb.g = rgb.b = v; + } else { + var t1 = v; + var t2 = (255-s)*v/255; + var t3 = (t1-t2)*(h%60)/60; + if(h==360) h = 0; + if(h<60) {rgb.r=t1; rgb.b=t2; rgb.g=t2+t3} + else if(h<120) {rgb.g=t1; rgb.b=t2; rgb.r=t1-t3} + else if(h<180) {rgb.g=t1; rgb.r=t2; rgb.b=t2+t3} + else if(h<240) {rgb.b=t1; rgb.r=t2; rgb.g=t1-t3} + else if(h<300) {rgb.b=t1; rgb.g=t2; rgb.r=t2+t3} + else if(h<360) {rgb.r=t1; rgb.g=t2; rgb.b=t1-t3} + else {rgb.r=0; rgb.g=0; rgb.b=0} + } + return {r:Math.round(rgb.r), g:Math.round(rgb.g), b:Math.round(rgb.b)}; + }, + RGBToHex = function (rgb) { + var hex = [ + rgb.r.toString(16), + rgb.g.toString(16), + rgb.b.toString(16) + ]; + $.each(hex, function (nr, val) { + if (val.length == 1) { + hex[nr] = '0' + val; + } + }); + return hex.join(''); + }, + HSBToHex = function (hsb) { + return RGBToHex(HSBToRGB(hsb)); + }, + restoreOriginal = function () { + var cal = $(this).parent(); + var col = cal.data('colorpicker').origColor; + cal.data('colorpicker').color = col; + fillRGBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + setSelector(col, cal.get(0)); + setHue(col, cal.get(0)); + setNewColor(col, cal.get(0)); + }; + return { + init: function (opt) { + opt = $.extend({}, defaults, opt||{}); + if (typeof opt.color == 'string') { + opt.color = HexToHSB(opt.color); + } else if (opt.color.r != undefined && opt.color.g != undefined && opt.color.b != undefined) { + opt.color = RGBToHSB(opt.color); + } else if (opt.color.h != undefined && opt.color.s != undefined && opt.color.b != undefined) { + opt.color = fixHSB(opt.color); + } else { + return this; + } + return this.each(function () { + if (!$(this).data('colorpickerId')) { + var options = $.extend({}, opt); + options.origColor = opt.color; + var id = 'collorpicker_' + parseInt(Math.random() * 1000); + $(this).data('colorpickerId', id); + var cal = $(tpl).attr('id', id); + if (options.flat) { + cal.appendTo(this).show(); + } else { + cal.appendTo(document.body); + } + options.fields = cal + .find('input') + .bind('keyup', keyDown) + .bind('change', change) + .bind('blur', blur) + .bind('focus', focus); + cal + .find('span').bind('mousedown', downIncrement).end() + .find('>div.colorpicker_current_color').bind('click', restoreOriginal); + options.selector = cal.find('div.colorpicker_color').bind('mousedown', downSelector); + options.selectorIndic = options.selector.find('div div'); + options.el = this; + options.hue = cal.find('div.colorpicker_hue div'); + cal.find('div.colorpicker_hue').bind('mousedown', downHue); + options.newColor = cal.find('div.colorpicker_new_color'); + options.currentColor = cal.find('div.colorpicker_current_color'); + cal.data('colorpicker', options); + cal.find('div.colorpicker_submit') + .bind('mouseenter', enterSubmit) + .bind('mouseleave', leaveSubmit) + .bind('click', clickSubmit); + fillRGBFields(options.color, cal.get(0)); + fillHSBFields(options.color, cal.get(0)); + fillHexFields(options.color, cal.get(0)); + setHue(options.color, cal.get(0)); + setSelector(options.color, cal.get(0)); + setCurrentColor(options.color, cal.get(0)); + setNewColor(options.color, cal.get(0)); + if (options.flat) { + cal.css({ + position: 'relative', + display: 'block' + }); + } else { + $(this).bind(options.eventName, show); + } + } + }); + }, + showPicker: function() { + return this.each( function () { + if ($(this).data('colorpickerId')) { + show.apply(this); + } + }); + }, + hidePicker: function() { + return this.each( function () { + if ($(this).data('colorpickerId')) { + $('#' + $(this).data('colorpickerId')).hide(); + } + }); + }, + setColor: function(col) { + if (typeof col == 'string') { + col = HexToHSB(col); + } else if (col.r != undefined && col.g != undefined && col.b != undefined) { + col = RGBToHSB(col); + } else if (col.h != undefined && col.s != undefined && col.b != undefined) { + col = fixHSB(col); + } else { + return this; + } + return this.each(function(){ + if ($(this).data('colorpickerId')) { + var cal = $('#' + $(this).data('colorpickerId')); + cal.data('colorpicker').color = col; + cal.data('colorpicker').origColor = col; + fillRGBFields(col, cal.get(0)); + fillHSBFields(col, cal.get(0)); + fillHexFields(col, cal.get(0)); + setHue(col, cal.get(0)); + setSelector(col, cal.get(0)); + setCurrentColor(col, cal.get(0)); + setNewColor(col, cal.get(0)); + } + }); + } + }; + }(); + $.fn.extend({ + ColorPicker: ColorPicker.init, + ColorPickerHide: ColorPicker.hidePicker, + ColorPickerShow: ColorPicker.showPicker, + ColorPickerSetColor: ColorPicker.setColor + }); +})(jQuery); diff --git a/modules/photoannotation/js/jquery.annotate.js b/modules/photoannotation/js/jquery.annotate.js index 49f3e580..ba98339e 100644 --- a/modules/photoannotation/js/jquery.annotate.js +++ b/modules/photoannotation/js/jquery.annotate.js @@ -243,7 +243,7 @@ notetitle = this.note.text; selecteduser = " selected=\"selected\""; } - var userdropdown = ''; for (var user in users) { var userval = users[user]; @@ -254,7 +254,23 @@ userdropdown += ''; } userdropdown += ''; - var form = $('
' + labels[10] + userdropdown + '
' + labels[4] + '
' + labels[0] + '' + '
' + labels[4] + '
' + labels[1] + '
' + labels[2] + '
'); + var form = $('
\ +
\ + \ + \ +
' + labels[12] + '\ + ' + userdropdown + + '
' + labels[4] + '
\ + \ + ' + + '
' + labels[4] + '
\ + \ +
\ +
' + labels[2] + '\ +
'); + + + this.form = form; $('body').append(this.form); $("#photoannotation-form").ready(function() { diff --git a/modules/photoannotation/js/jquery.annotate.min.js b/modules/photoannotation/js/jquery.annotate.min.js deleted file mode 100644 index db7667f2..00000000 --- a/modules/photoannotation/js/jquery.annotate.min.js +++ /dev/null @@ -1,2 +0,0 @@ - -(function($){$.fn.annotateImage=function(options){var opts=$.extend({},$.fn.annotateImage.defaults,options);var image=this;this.image=this;this.mode='view';this.getUrl=opts.getUrl;this.saveUrl=opts.saveUrl;this.deleteUrl=opts.deleteUrl;this.currentUrl=opts.currentUrl;this.deleteUrl=opts.deleteUrl;this.editable=opts.editable;this.useAjax=opts.useAjax;this.tags=opts.tags;this.notes=opts.notes;this.labels=opts.labels;this.csrf=opts.csrf;this.canvas=$('
');this.canvas.children('.image-annotate-edit').hide();this.canvas.children('.image-annotate-view').hide();this.image.after(this.canvas);this.canvas.height(this.height());this.canvas.width(this.width());this.canvas.css('background-image','url("'+this.attr('src')+'")');this.canvas.children('.image-annotate-view, .image-annotate-edit').height(this.height());this.canvas.children('.image-annotate-view, .image-annotate-edit').width(this.width());this.canvas.hover(function(){if($(this).children('.image-annotate-edit').css('display')=='none'){$(this).children('.image-annotate-view').show()}},function(){$(this).children('.image-annotate-view').hide();$(this).children('.image-annotate-note').hide()});this.canvas.children('.image-annotate-view').hover(function(){$(this).show()},function(){$(this).hide();$(this).children('.image-annotate-note').hide()});if(this.useAjax){$.fn.annotateImage.ajaxLoad(this)}else{$.fn.annotateImage.load(this,this.labels,this.editable,this.csrf,this.deleteUrl,this.currentUrl)}if($('#g-photoannotation-link').length!=0){this.button=$('#g-photoannotation-link');this.button.click(function(){$.fn.annotateImage.add(image,opts.tags,opts.labels,opts.saveUrl,opts.currentUrl,opts.csrf)})}this.hide();return this};$.fn.annotateImage.defaults={getUrl:'your-get.rails',saveUrl:'your-save.rails',deleteUrl:'your-delete.rails',editable:true,useAjax:true,tags:new Array(),notes:new Array()};$.fn.annotateImage.clear=function(image){for(var i=0;iOK');ok.click(function(){var form=$('#image-annotate-edit-form form');var text=$('#image-annotate-text').val();$.fn.annotateImage.appendPosition(form,editable)image.mode='view';form.submit();editable.destroy()});editable.form.append(ok)};$.fn.annotateImage.createCancelButton=function(editable,image){var cancel=$('Cancel');cancel.click(function(){editable.destroy();image.mode='view'});editable.form.append(cancel)};$.fn.annotateImage.saveAsHtml=function(image,target){var element=$(target);var html="";for(var i=0;i'};$.fn.annotateEdit=function(image,note,tags,labels,saveUrl,currentUrl,csrf){this.image=image;if(note){this.note=note}else{var newNote=new Object();newNote.id="new";newNote.top=30;newNote.left=30;newNote.width=30;newNote.height=30;newNote.text="";this.note=newNote}var area=image.canvas.children('.image-annotate-edit').children('.image-annotate-edit-area');this.area=area;this.area.css('height',this.note.height+'px');this.area.css('width',this.note.width+'px');this.area.css('left',this.note.left+'px');this.area.css('top',this.note.top+'px');image.canvas.children('.image-annotate-view').hide();image.canvas.children('.image-annotate-edit').show();var tagdropdown=labels[0]+'';var form=$('
'+tagdropdown+labels[1]+''+labels[2]+'
');this.form=form;$('body').append(this.form);this.form.css('left',this.area.offset().left+'px');this.form.css('top',(parseInt(this.area.offset().top)+parseInt(this.area.height())+7)+'px');area.resizable({handles:'all',stop:function(e,ui){form.css('left',area.offset().left+'px');form.css('top',(parseInt(area.offset().top)+parseInt(area.height())+2)+'px')}}).draggable({containment:image.canvas,drag:function(e,ui){form.css('left',area.offset().left+'px');form.css('top',(parseInt(area.offset().top)+parseInt(area.height())+2)+'px')},stop:function(e,ui){form.css('left',area.offset().left+'px');form.css('top',(parseInt(area.offset().top)+parseInt(area.height())+2)+'px')}});return this};$.fn.annotateEdit.prototype.destroy=function(){this.image.canvas.children('.image-annotate-edit').hide();this.area.resizable('destroy');this.area.draggable('destroy');this.area.css('height','');this.area.css('width','');this.area.css('left','');this.area.css('top','');this.form.remove()}$.fn.annotateView=function(image,note,labels,editable,csrf,deleteUrl,currentUrl){this.image=image;this.note=note;this.area=$('
');image.canvas.children('.image-annotate-view').prepend(this.area);if(editable){this.delarea=$('
');image.canvas.children('.image-annotate-view').prepend(this.delarea);this.delarea.bind('click',function(){if(confirm(labels[3])){var alink=$(".g-fullsize-link");alink.unbind();alink.attr('href','#');alink.removeAttr('rel');var delform=$(this).children('div').children('form');delform.submit()}})this.delarea.hide()}this.form=$('
'+note.text+'
');this.form.hide();image.canvas.children('.image-annotate-view').append(this.form);this.form.children('span.actions').hide();this.setPosition();var annotation=this;this.area.hover(function(){annotation.show();if(annotation.delarea!=undefined){annotation.delarea.show()}},function(){annotation.hide();if(annotation.delarea!=undefined){annotation.delarea.hide()}});if(editable){this.delarea.hover(function(){annotation.delarea.show()},function(){annotation.delarea.hide()})}if(note.url!=""&¬e.url!=null){this.area.bind('click',function(){var alink=$(".g-fullsize-link");alink.unbind();alink.attr('href','#');alink.removeAttr('rel');window.location=note.url})}};$.fn.annotateView.prototype.setPosition=function(){this.area.children('div').height((parseInt(this.note.height)-2)+'px');this.area.children('div').width((parseInt(this.note.width)-2)+'px');this.area.css('left',(this.note.left)+'px');this.area.css('top',(this.note.top)+'px');this.form.css('left',(this.note.left)+'px');this.form.css('top',(parseInt(this.note.top)+parseInt(this.note.height)+7)+'px');if(this.delarea!=undefined){this.delarea.children('div').height('14px');this.delarea.children('div').width('14px');this.delarea.css('left',(this.note.left+parseInt(this.note.width))+'px');this.delarea.css('top',(this.note.top)+'px')}};$.fn.annotateView.prototype.show=function(){this.form.fadeIn(250);if(!this.note.editable){this.area.addClass('image-annotate-area-hover')}else{this.area.addClass('image-annotate-area-editable-hover')}};$.fn.annotateView.prototype.hide=function(){this.form.fadeOut(250);this.area.removeClass('image-annotate-area-hover');this.area.removeClass('image-annotate-area-editable-hover')};$.fn.annotateView.prototype.destroy=function(){this.area.remove();this.form.remove()}$.fn.annotateView.prototype.edit=function(){if(this.image.mode=='view'){this.image.mode='edit';var annotation=this;var editable=new $.fn.annotateEdit(this.image,this.note);$.fn.annotateImage.createSaveButton(editable,this.image,annotation);var del=$('Delete');del.click(function(){var form=$('#image-annotate-edit-form form');$.fn.annotateImage.appendPosition(form,editable)if(annotation.image.useAjax){$.ajax({url:annotation.image.deleteUrl,data:form.serialize(),error:function(e){alert("An error occured deleting that note.")}})}annotation.image.mode='view';editable.destroy();annotation.destroy()});editable.form.append(del);$.fn.annotateImage.createCancelButton(editable,this.image)}};$.fn.annotateImage.appendPosition=function(form,editable){var areaFields=$(''+''+''+''+'');form.append(areaFields)}$.fn.annotateView.prototype.resetPosition=function(editable,text){this.form.html(text);this.form.hide();this.area.children('div').height(editable.area.height()+'px');this.area.children('div').width((editable.area.width()-2)+'px');this.area.css('left',(editable.area.position().left)+'px');this.area.css('top',(editable.area.position().top)+'px');this.form.css('left',(editable.area.position().left)+'px');this.form.css('top',(parseInt(editable.area.position().top)+parseInt(editable.area.height())+7)+'px');this.note.top=editable.area.position().top;this.note.left=editable.area.position().left;this.note.height=editable.area.height();this.note.width=editable.area.width();this.note.text=text;this.note.id=editable.note.id;this.editable=true}})(jQuery); diff --git a/modules/photoannotation/views/admin_photoannotation.html.php b/modules/photoannotation/views/admin_photoannotation.html.php index 0c963a85..9822ebfb 100644 --- a/modules/photoannotation/views/admin_photoannotation.html.php +++ b/modules/photoannotation/views/admin_photoannotation.html.php @@ -9,3 +9,17 @@ please download and install the Module order module.") ?>

+ diff --git a/modules/photoannotation/views/photoannotation_highlight_block.html.php b/modules/photoannotation/views/photoannotation_highlight_block.html.php index e688d5d9..ec0670ca 100644 --- a/modules/photoannotation/views/photoannotation_highlight_block.html.php +++ b/modules/photoannotation/views/photoannotation_highlight_block.html.php @@ -117,7 +117,7 @@ } $users_arraystring = trim($users_arraystring, ","); $users_arraystring .= " ],"; - $labels_arraystring = "labels: [ '". t("Tag:") ."','". t("Note Title:") ."','". t("Description (optional):") ."','". t("Are you sure you want to delete this annotation?") ."','". t("or") ."','". t("Yes") ."','". t("No") ."','". t("Confirm deletion") ."','". t("Save") ."','". t("Cancel") ."','". t("User") ."','". t("No user selected") ."' ],"; + $labels_arraystring = "labels: [ '". t("Tag:") ."','". t("Note Title:") ."','". t("Description (optional)") ."','". t("Are you sure you want to delete this annotation?") ."','". t("or") ."','". t("Yes") ."','". t("No") ."','". t("Confirm deletion") ."','". t("Save") ."','". t("Cancel") ."','". t("User:") ."','". t("No user selected") ."','". t("Select one of the following") ."' ],"; ?> -
- -

- " - alt="display_name()) ?>" - class="g-avatar g-left" width="40" height="40" /> - $user->display_name())) ?> -

- -
-

title) ?>

-
- view ?> -
-
- -
diff --git a/modules/photoannotation/views/user_profile_info.html.php b/modules/photoannotation/views/user_profile_info.html.php deleted file mode 100644 index e559abda..00000000 --- a/modules/photoannotation/views/user_profile_info.html.php +++ /dev/null @@ -1,9 +0,0 @@ - - - $value): ?> - - - - - -