Changeset 14843
- Timestamp:
- 02/11/08 13:27:51 (10 months ago)
- Files:
-
- trunk/midcom/net.nemein.favourites/admin.php (modified) (1 diff)
- trunk/midcom/net.nemein.favourites/static/loader.gif (added)
- trunk/midcom/net.nemein.favourites/static/net_nemein_favourites.js (modified) (5 diffs)
- trunk/midcom/net.nemein.favourites/static/not-buried-hover.png (added)
- trunk/midcom/net.nemein.favourites/static/screen.css (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/midcom/net.nemein.favourites/admin.php
r14773 r14843 206 206 echo net_nemein_favourites_admin::get_add_link($objectType, $guid, $url, $link_for_anonymous); 207 207 } 208 209 function get_ajax_headers($js_options='{}', $element_path='.net_nemein_favourites') 210 { 211 $html = "<script type=\"text/javascript\" src=\"" . MIDCOM_STATIC_URL . "/jQuery/jquery.metadata.js\"></script>\n"; 212 $html .= "<script type=\"text/javascript\" src=\"" . MIDCOM_STATIC_URL . "/net.nemein.favourites/net_nemein_favourites.js\" ></script>\n"; 213 214 $html .= "<link rel=\"stylesheet\" type=\"text/css\" href=\"" . MIDCOM_STATIC_URL . "/net.nemein.favourites/screen.css\" media=\"screen\" />\n\n"; 215 216 $add_html = ''; 217 if ( isset($_REQUEST['net_nemein_favourites_execute_for']) 218 && isset($_REQUEST['net_nemein_favourites_url'])) 219 { 220 $action = $_REQUEST['net_nemein_favourites_execute']; 221 $guid = $_REQUEST['net_nemein_favourites_execute_for']; 222 // $add_html .= "jQuery('{$element_path}').net_nemein_favourites_execute({$js_options}, '{$action}', '{$guid}', '{$_REQUEST['net_nemein_favourites_url']}');\n"; 223 224 $add_html .= ".net_nemein_favourites_execute({$js_options}, '{$action}', '{$guid}', '{$_REQUEST['net_nemein_favourites_url']}')\n"; 225 } 226 227 $html .= "<script type=\"text/javascript\">\n"; 228 $html .= "jQuery(document).ready(function(){\n"; 229 $html .= "jQuery('{$element_path}').net_nemein_favourites({$js_options}){$add_html};\n"; 230 //$html .= $add_html; 231 $html .= "});\n"; 232 $html .= "</script>\n\n"; 233 234 echo $html; 235 } 208 236 } 209 237 ?> trunk/midcom/net.nemein.favourites/static/net_nemein_favourites.js
r14377 r14843 10 10 return new $.net.nemein.favourites.controller(this, options); 11 11 }); 12 } 12 }, 13 net_nemein_favourites_execute: function(options, action, guid, url) 14 { 15 $.net.nemein.favourites.execute(options, action, guid, url); 16 } 13 17 }); 14 18 … … 23 27 bury_count: 'bury_count' 24 28 }, 25 show_activity: false 26 } 27 }; 28 29 $.net.nemein.favourites.controller = function(holder, options) { 30 var _self = this; 31 var fav_btn = $('.'+options.classes.fav_btn, holder); 32 var bury_btn = $('.'+options.classes.bury_btn, holder); 33 var favs_cnt = $('.'+options.classes.favs_count, holder); 34 var bury_cnt = $('.'+options.classes.bury_count, holder); 35 36 $.meta.setType("class"); 37 var data = $(holder).data(); 38 39 update_view(data); 40 41 function execute(action, url) { 42 $.ajax({ 43 url: url, 44 type: "POST", 45 global: false, 46 cache: false, 47 dataType: "json", 48 contentType: 'application/json', 49 processData: false, 50 error: function(req) { 51 return false; 52 }, 53 success: function(data) { 54 update_view(data, action); 29 show_activity: false, 30 force_ssl: false 31 }, 32 execute: function() { 33 var options = jQuery.extend({}, $.net.nemein.favourites.defaults, arguments[0] || {}); 34 var url = arguments[3]; 35 var action = arguments[1]; 36 var btn_class = options.classes[action+'_btn']; 37 38 if (typeof arguments[2] == 'string') { 39 var guid = arguments[2]; 40 41 var loading_class = btn_class + '_loading'; 42 var button = $('#net_nemein_favourites_for_'+guid+' .'+btn_class); 43 44 button.addClass(loading_class); 45 $.ajax({ 46 url: url, 47 type: "POST", 48 global: false, 49 cache: false, 50 dataType: "json", 51 contentType: 'application/json', 52 processData: false, 53 error: function(req) { 54 button.removeClass(loading_class); 55 return false; 56 }, 57 success: function(data) { 58 button.removeClass(loading_class); 59 $.net.nemein.favourites.update_view(options, data, action); 60 return true; 61 } 62 }); 63 } else { 64 var button = arguments[2]; 65 66 var loading_class = options.classes[action+'_btn'] + '_loading'; 67 68 if (options.force_ssl) { 69 var needs_to_change = true; 70 if (window.location.protocol == 'https:') { 71 needs_to_change = false; 72 } 73 74 var current_url = '' + (window.location).toString().split('?')[0]; 75 if (needs_to_change) { 76 //current_url = current_url.replace(/http/, 'https'); 77 } 78 79 var url_parts = url.split('/'); 80 var guid = url_parts[url_parts.length-1]; 81 if (guid == '') { 82 guid = url_parts[url_parts.length-2]; 83 } 84 85 window.location.href = current_url + '?net_nemein_favourites_execute='+action+'&net_nemein_favourites_execute_for='+guid+'&net_nemein_favourites_url='+url; 86 55 87 return true; 88 } else { 89 button.addClass(loading_class); 90 91 $.ajax({ 92 url: url, 93 type: "POST", 94 global: false, 95 cache: false, 96 dataType: "json", 97 contentType: 'application/json', 98 processData: false, 99 error: function(req) { 100 button.removeClass(loading_class); 101 return false; 102 }, 103 success: function(data) { 104 button.removeClass(loading_class); 105 $.net.nemein.favourites.update_view(options, data, action); 106 return true; 107 } 108 }); 56 109 } 57 }); 58 } 59 60 function update_view(data, action) { 110 } 111 }, 112 update_view: function(options, data, action) { 113 var fav_btn = $('.'+options.classes.fav_btn); 114 var bury_btn = $('.'+options.classes.bury_btn); 115 var favs_cnt = $('.'+options.classes.favs_count); 116 var bury_cnt = $('.'+options.classes.bury_count); 117 61 118 if (typeof action == 'undefined') { 62 119 action = false; … … 76 133 favs_cnt.removeClass(options.classes.favs_count+'_disabled'); 77 134 fav_btn.bind("click", function(){ 78 execute('fav', data.fav_url); 135 return $.net.nemein.favourites.execute(options, 'fav', fav_btn, data.fav_url); 136 }); 137 fav_btn.mouseover(function(){ 138 fav_btn.addClass(options.classes.fav_btn+'_hover'); 139 }); 140 fav_btn.mouseout(function(){ 141 fav_btn.removeClass(options.classes.fav_btn+'_hover'); 79 142 }); 80 143 } else { … … 90 153 bury_cnt.removeClass(options.classes.bury_count+'_disabled'); 91 154 bury_btn.bind("click", function(){ 92 execute('bury', data.bury_url); 155 return $.net.nemein.favourites.execute(options, 'bury', bury_btn, data.bury_url); 156 }); 157 bury_btn.mouseover(function(){ 158 bury_btn.addClass(options.classes.bury_btn+'_hover'); 159 }); 160 bury_btn.mouseout(function(){ 161 bury_btn.removeClass(options.classes.bury_btn+'_hover'); 93 162 }); 94 163 } else { … … 98 167 } 99 168 } 100 101 169 }; 170 171 $.net.nemein.favourites.controller = function(holder, options) { 172 // var _self = this; 173 // var fav_btn = $('.'+options.classes.fav_btn, holder); 174 // var bury_btn = $('.'+options.classes.bury_btn, holder); 175 // var favs_cnt = $('.'+options.classes.favs_count, holder); 176 // var bury_cnt = $('.'+options.classes.bury_count, holder); 177 178 $.meta.setType("class"); 179 var data = $(holder).data(); 180 181 $.net.nemein.favourites.update_view(options, data); 182 }; 102 183 103 184 })(jQuery); 104 185 105 // To use this on site, following must be included in the header:186 // To use this on site, something like the following must be included in the header: 106 187 /* 107 <script type="text/javascript" src="<?php echo MIDCOM_STATIC_URL;?>/jQuery/jquery.metadata.js"></script> 108 <script type="text/javascript" src="<?php echo MIDCOM_STATIC_URL;?>/net.nemein.favourites/net_nemein_favourites.js"></script> 109 <script type="text/javascript"> 110 jQuery(document).ready(function(){ 111 jQuery('.net_nemein_favourites').net_nemein_favourites(); 112 }); 113 </script> 188 <?php 189 $_MIDCOM->componentloader->load_graceful('net.nemein.favourites'); 190 net_nemein_favourites_admin::get_ajax_headers(); 191 ?> 114 192 */ 115 193 116 // Examplehtml structure to use:194 // Default html structure to use: 117 195 /* 118 <div class='net_nemein_favourites <?php echo net_nemein_favourites_admin::get_json_data($data['article']->__new_class_name__, $data['article']->guid, '/favourites/');?>'> 119 <div class="fav_btn">Fav</div> 120 <div class="bury_btn">Bury</div> 121 <span class="favs_count">0</span> 122 <span class="bury_count">0</span> 196 <div id="net_nemein_favourites_for_<?php echo $data['article']->guid; ?>" class='net_nemein_favourites <?php echo net_nemein_favourites_admin::get_json_data($data['article']->__new_class_name__, $data['article']->guid, '/favourites/');?>'> 197 <div class="fav_btn"><span class="favs_count">0</span></div> 198 <div class="bury_btn"><span class="bury_count">0</span></div> 123 199 </div> 124 200 */
