diff options
author | Alvin Li <liweitianux@gmail.com> | 2013-10-09 15:52:53 +0800 |
---|---|---|
committer | Alvin Li <liweitianux@gmail.com> | 2013-10-09 15:52:53 +0800 |
commit | 02afd8a32edb13ea7fc2266ac80092ea15c0930c (patch) | |
tree | c7a2a3f50378c017b425da47e04a71c6beaae56c /97suifangqa/staticfiles/plugins/thickbox | |
parent | fafce2cfc72f4e1cd14ff6cb693c8ec7854159c5 (diff) | |
download | 97dev-02afd8a32edb13ea7fc2266ac80092ea15c0930c.tar.bz2 |
* treat 'apps/utils' as regular django app; which used to store
general tools for used in other apps
* moved 'templatetags' from 'apps/indicator' to 'apps/utils'
* '.gitignore' to ignore 'fixtures_bak'
* moved js plugins from 'apps/indicator/static/plugins' to
'staticfiles/plugins'
apps/recommend:
* updated 'recommend.models';
o commented 'recommend.models.ResearchCombination' (not used)
* implemented views 'add_edit_blog_info' and 'ajax_add_edit_configs';
* added pages 'templates/recommend/add_edit_blog_info.html',
'add_edit_blog_info_error.html';
o related css and javascripts files
* added 'tools.py';
* added 'utils/tools.py' for placing generic functions;
* deleted 'initial_data.json' (mv 'fixtures' to 'fixtures_bak');
* small fixes to 'indicator.models', 'sciblog.models' and
'sfaccount.views'
* fixed automatically show 'proper_nouns' annotation in blog:
recovered the line 'import signals' in 'sciblog.models'
* added 'is_ok()' method for 'recommend.models.ResearchConfig';
Diffstat (limited to '97suifangqa/staticfiles/plugins/thickbox')
-rw-r--r-- | 97suifangqa/staticfiles/plugins/thickbox/README | 20 | ||||
-rw-r--r-- | 97suifangqa/staticfiles/plugins/thickbox/VERSION_2.0 | 0 | ||||
-rw-r--r-- | 97suifangqa/staticfiles/plugins/thickbox/images/loadingAnimation.gif | bin | 0 -> 7347 bytes | |||
-rw-r--r-- | 97suifangqa/staticfiles/plugins/thickbox/images/loadingAnimation2.gif | bin | 0 -> 5886 bytes | |||
-rw-r--r-- | 97suifangqa/staticfiles/plugins/thickbox/images/macFFBgHack.png | bin | 0 -> 207 bytes | |||
-rw-r--r-- | 97suifangqa/staticfiles/plugins/thickbox/thickbox.css | 135 | ||||
-rw-r--r-- | 97suifangqa/staticfiles/plugins/thickbox/thickbox.js | 321 |
7 files changed, 476 insertions, 0 deletions
diff --git a/97suifangqa/staticfiles/plugins/thickbox/README b/97suifangqa/staticfiles/plugins/thickbox/README new file mode 100644 index 0000000..b829acb --- /dev/null +++ b/97suifangqa/staticfiles/plugins/thickbox/README @@ -0,0 +1,20 @@ +Before you can implement ThickBox make sure the page that invokes ThickBox has a valid DTD. This is required for ThickBox to look and function correctly. + +1. ThickBox requires the jQuery JavaScript library; because of this, you will need to include the jquery.js file in the head element of your web page, followed by the thickbox.js file (NOTE: jquery.js must come first in the source order). Example below: + +<script type="text/javascript" src="path-to-file/jquery.js"></script> +<script type="text/javascript" src="path-to-file/thickbox.js"></script> + +Once you have included the .js files, open thickbox.js or thickbox-compressed.js and locate the tb_pathToImage variable at the top of the page. Once you have found it, make sure to change the value of tb_pathToImage to the path where the loadingAnimation.gif file is located on your own server. + +2. Include the ThickBox CSS file in your web page. As of version 3.1 you will also need to update the path to the macFFBgHack.png in the thickbox.css file. Example options below: + +<link rel="stylesheet" href="path-to-file/thickbox.css" type="text/css" media="screen" /> + +Or + +<style type="text/css" media="all">@import "path-to-file/thickbox.css";</style> + +Or, open the thickbox.css file and copy and paste the styles into an existing style sheet. Be aware that the ThickBox CSS file will remove the browsers default padding and margin for all elements. + +3. View the examples to learn the many different ways to use and invoke ThickBox functionality.
\ No newline at end of file diff --git a/97suifangqa/staticfiles/plugins/thickbox/VERSION_2.0 b/97suifangqa/staticfiles/plugins/thickbox/VERSION_2.0 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/97suifangqa/staticfiles/plugins/thickbox/VERSION_2.0 diff --git a/97suifangqa/staticfiles/plugins/thickbox/images/loadingAnimation.gif b/97suifangqa/staticfiles/plugins/thickbox/images/loadingAnimation.gif Binary files differnew file mode 100644 index 0000000..92c5c30 --- /dev/null +++ b/97suifangqa/staticfiles/plugins/thickbox/images/loadingAnimation.gif diff --git a/97suifangqa/staticfiles/plugins/thickbox/images/loadingAnimation2.gif b/97suifangqa/staticfiles/plugins/thickbox/images/loadingAnimation2.gif Binary files differnew file mode 100644 index 0000000..82290f4 --- /dev/null +++ b/97suifangqa/staticfiles/plugins/thickbox/images/loadingAnimation2.gif diff --git a/97suifangqa/staticfiles/plugins/thickbox/images/macFFBgHack.png b/97suifangqa/staticfiles/plugins/thickbox/images/macFFBgHack.png Binary files differnew file mode 100644 index 0000000..c6473b3 --- /dev/null +++ b/97suifangqa/staticfiles/plugins/thickbox/images/macFFBgHack.png diff --git a/97suifangqa/staticfiles/plugins/thickbox/thickbox.css b/97suifangqa/staticfiles/plugins/thickbox/thickbox.css new file mode 100644 index 0000000..9cf9577 --- /dev/null +++ b/97suifangqa/staticfiles/plugins/thickbox/thickbox.css @@ -0,0 +1,135 @@ +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> global settings needed for thickbox <<<-----------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +*{padding: 0; margin: 0;} + +html, body { +min-height: 100%; +height: auto !important; +height: 100%; +} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_window { + font: 12px Arial, Helvetica, sans-serif; + color: #333333; +} + +#TB_secondLine { + font: 10px Arial, Helvetica, sans-serif; + color:#666666; +} + +#TB_window a:link {color: #666666;} +#TB_window a:visited {color: #666666;} +#TB_window a:hover {color: #000;} +#TB_window a:active {color: #666666;} +#TB_window a:focus{color: #666666;} + +/* ----------------------------------------------------------------------------------------------------------------*/ +/* ---------->>> thickbox settings <<<-----------------------------------------------------------------------------*/ +/* ----------------------------------------------------------------------------------------------------------------*/ +#TB_overlay { + position: absolute; + z-index:100; + width: 100%; + height: 100%; + top: 0; + left: 0; + min-height:100%; + background-color:#000; + filter:alpha(opacity=60); + -moz-opacity: 0.6; + opacity: 0.6; +} + +#TB_window { + position: absolute; + /*background: #ffffff;*/ + z-index: 102; + color:#000000; + display:none; + /*border: 4px solid #525252;*/ + text-align:left; +} + +#TB_window img { + display:block; + margin: 15px 0 0 15px; + border-right: 1px solid #ccc; + border-bottom: 1px solid #ccc; + border-top: 1px solid #666; + border-left: 1px solid #666; +} + +#TB_caption{ + height:25px; + padding:7px 30px 10px 25px; + float:left; +} + +#TB_closeWindow{ + height:25px; + padding:11px 25px 10px 0; + float:right; +} + +#TB_closeAjaxWindow{ + padding:5px 10px 7px 0; + margin-bottom:1px; + text-align:right; + float:right; +} + +#TB_ajaxWindowTitle{ + float:left; + padding:7px 0 5px 10px; + margin-bottom:1px; +} + +#TB_title{ + background-color:#e8e8e8; + height:27px; +} + +#TB_ajaxContent{ + clear:both; + padding:2px 15px 15px 15px; + overflow:auto; + text-align:left; + line-height:1.4em; +} + +#TB_ajaxContent p{ + padding:5px 0px 5px 0px; +} + +#TB_load{ + position: absolute; + display:none; + height:100px; + width:100px; + z-index:101; +} + +#TB_HideSelect{ + z-index:99; + position:absolute; + top: 0; + left: 0; + width:100%; + height:100%; + background-color:#fff; + border:none; + filter:alpha(opacity=0); + -moz-opacity: 0; + opacity: 0; +} + +#TB_iframeContent{ + border:none; + clear:both; +} + diff --git a/97suifangqa/staticfiles/plugins/thickbox/thickbox.js b/97suifangqa/staticfiles/plugins/thickbox/thickbox.js new file mode 100644 index 0000000..9b6fb06 --- /dev/null +++ b/97suifangqa/staticfiles/plugins/thickbox/thickbox.js @@ -0,0 +1,321 @@ +/* + * Thickbox 2.0 - One Box To Rule Them All. + * By Cody Lindley (http://www.codylindley.com) + * Copyright (c) 2006 cody lindley + * Licensed under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * Thickbox is built on top of the very light weight jQuery library. + */ + +//on page load call TB_init +$(document).ready(function() { + // set loadingAnimation image + if (typeof parent.thickbox_loading_image !== 'undefined') { + tb_pathToImage = parent.thickbox_loading_image; + } + else if (typeof parent.static_url !== 'undefined') { + tb_pathToImage = parent.static_url + "images/loadingAnimation.gif"; + } + else { + tb_pathToImage = "images/loadingAnimation.gif"; + } + //console.log("tb_pathToImage: ", tb_pathToImage); + imgLoader = new Image();// preload image + imgLoader.src = tb_pathToImage; + // init + TB_init(); +}); + +//add thickbox to href elements that have a class of .thickbox +function TB_init(){ + //$("a.thickbox").live("click", function(){ + // '.live()' removed in jQuery 1.9 + $(document).on("click", "a.thickbox", function(){ + if(this.href == 'javascript:void(0)'){ + return false; + } + var t = this.title || this.name || null; + var g = this.rel || false; + TB_show(t, this.href, g); + this.blur(); + return false; + }); +} + +function TB_show(caption, url, imageGroup) {//function called when the user clicks on a thickbox link + try { + if (document.getElementById("TB_HideSelect") == null) { + $("body").append("<iframe frameborder='no' marginheight='0' marginwidth='0' border='0' id='TB_HideSelect'></iframe><div id='TB_overlay'></div><div id='TB_window'></div>"); + $("#TB_overlay").click(TB_remove); + } + + if(caption==null){caption=""}; + + $(window).scroll(TB_position); + + TB_overlaySize(); + + $("body").append("<div id='TB_load' class='loadingAnimation'><img src='"+imgLoader.src+"' /></div>"); + TB_load_position(); + + var urlString = /\.jpg|\.jpeg|\.png|\.gif|\.html|\.htm|\.php|\.cfm|\.asp|\.aspx|\.jsp|\.jst|\.rb|\.txt|\.bmp/g; + var urlType = url.toLowerCase().match(urlString); + + // check 'url_type' query param + // django url does not have '.xxx' extensions + var queryString = url.replace(/^[^\?]+\??/,''); + var params = TB_parseQuery( queryString ); + //console.log("params['url_type']: ", params['url_type']); + var _undefined_; // local undefined + if (params['url_type'] !== _undefined_ && params['url_type'] !== '') { + urlType = params['url_type']; + } + //console.log('urlType: ', urlType); + + if(urlType == '.jpg' || urlType == '.jpeg' || urlType == '.png' || urlType == '.gif' || urlType == '.bmp'){//code to show images + + TB_PrevCaption = ""; + TB_PrevURL = ""; + TB_PrevHTML = ""; + TB_NextCaption = ""; + TB_NextURL = ""; + TB_NextHTML = ""; + TB_imageCount = ""; + TB_FoundURL = false; + if(imageGroup){ + TB_TempArray = $("a[@rel="+imageGroup+"]").get(); + for (TB_Counter = 0; ((TB_Counter < TB_TempArray.length) && (TB_NextHTML == "")); TB_Counter++) { + var urlTypeTemp = TB_TempArray[TB_Counter].href.toLowerCase().match(urlString); + if (!(TB_TempArray[TB_Counter].href == url)) { + if (TB_FoundURL) { + TB_NextCaption = TB_TempArray[TB_Counter].title; + TB_NextURL = TB_TempArray[TB_Counter].href; + TB_NextHTML = "<span id='TB_next'> <a href='#'>Next ></a></span>"; + } else { + TB_PrevCaption = TB_TempArray[TB_Counter].title; + TB_PrevURL = TB_TempArray[TB_Counter].href; + TB_PrevHTML = "<span id='TB_prev'> <a href='#'>< Prev</a></span>"; + } + } else { + TB_FoundURL = true; + TB_imageCount = "Image " + (TB_Counter + 1) +" of "+ (TB_TempArray.length); + } + } + } + + imgPreloader = new Image(); + imgPreloader.onload = function(){ + + imgPreloader.onload = null; + + // Resizing large images - orginal by Christian Montoya edited by me. + var pagesize = TB_getPageSize(); + var x = pagesize[0] - 150; + var y = pagesize[1] - 150; + var imageWidth = imgPreloader.width; + var imageHeight = imgPreloader.height; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + } + } else if (imageHeight > y) { + imageWidth = imageWidth * (y / imageHeight); + imageHeight = y; + if (imageWidth > x) { + imageHeight = imageHeight * (x / imageWidth); + imageWidth = x; + } + } + // End Resizing + + TB_WIDTH = imageWidth + 30; + TB_HEIGHT = imageHeight + 60; + $("#TB_window").append("<a href='' id='TB_ImageOff' title='Close'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='Close or Escape Button'>close</a></div>"); + + $("#TB_closeWindowButton").click(TB_remove); + + if (!(TB_PrevHTML == "")) { + function goPrev(){ + if($(document).unclick(goPrev)){$(document).unclick(goPrev)}; + $("#TB_window").remove(); + $("body").append("<div id='TB_window'></div>"); + $(document).unkeyup(); + TB_show(TB_PrevCaption, TB_PrevURL, imageGroup); + return false; + } + + $("#TB_prev").click(goPrev); + + $(document).keyup( function(e){ var key = e.keyCode; if(key == 37){goPrev()} }); + } + + + + if (!(TB_NextHTML == "")) { + function goNext(){ + $("#TB_window").remove(); + $("body").append("<div id='TB_window'></div>"); + $(document).unkeyup(); + TB_show(TB_NextCaption, TB_NextURL, imageGroup); + return false; + } + + $("#TB_next").click(goNext); + + $(document).keyup( function(e){ var key = e.keyCode; if(key == 39){goNext()} }); + } + + TB_position(); + $("#TB_load").remove(); + $("#TB_ImageOff").click(TB_remove); + $("#TB_window").css({display:"block"}); //for safari using css instead of show + } + + imgPreloader.src = url; + } + + if(urlType=='.htm'||urlType=='.html'||urlType=='.php'||urlType=='.asp'||urlType=='.aspx'||urlType=='.jsp'||urlType=='.jst'||urlType=='.rb'||urlType=='.txt'||urlType=='.cfm' || (url.indexOf('TB_inline') != -1) || (url.indexOf('TB_iframe') != -1) ){//code to show html pages + + var queryString = url.replace(/^[^\?]+\??/,''); + var params = TB_parseQuery( queryString ); + + //console.log(queryString); + //console.log(params); + //TB_WIDTH = (params['width']*1) + 30 || 630; + //TB_HEIGHT = (params['height']*1) + 40 || 440; + //ajaxContentW = TB_WIDTH - 30; + //ajaxContentH = TB_HEIGHT - 45; + TB_WIDTH = (params['width']*1); + TB_HEIGHT = (params['height']*1); + ajaxContentW = TB_WIDTH; + ajaxContentH = TB_HEIGHT; + + //console.log(url); + if(params['no_title'] != "true"){ + $("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'>close</a></div></div>"); + TB_HEIGHT += 27; //title height + } + if(url.indexOf('TB_iframe') != -1){ + if(url.indexOf('transfer_params') == -1){ + urlNoQuery = url.substr(0,TB_strpos(url, "?")); + urlNoTBQuery = url.split('TB_'); + }else{ + urlNoQuery = url; + } + $("#TB_window").append("<iframe frameborder='no' marginheight='0' marginwidth='0' border='0' src='"+urlNoTBQuery[0]+"' id='TB_iframeContent' style='width:"+(ajaxContentW)+"px;height:"+(ajaxContentH)+"px;'></iframe>"); + }else{ + $("#TB_window").append("<div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>"); + } + + $("#TB_closeWindowButton").click(TB_remove); + + if(url.indexOf('TB_inline') != -1){ + $("#TB_ajaxContent").html($('#' + params['inlineId']).html()); + TB_position(); + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); + }else if(url.indexOf('TB_iframe') != -1){ + TB_position(); + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); + }else{ + $("#TB_ajaxContent").load(url, function(){ + TB_position(); + $("#TB_load").remove(); + $("#TB_window").css({display:"block"}); + }); + } + + } + + $(window).resize(TB_position); + + } catch(e) { + alert( e ); + } +} + +//helper functions below + +function TB_remove() { + $("#TB_window").fadeOut("fast",function(){$('#TB_window,#TB_overlay,#TB_HideSelect').remove();}); + $("#TB_load").remove(); + //$(document).unkeyup(); + return false; +} + +function TB_position() { + var pagesize = TB_getPageSize(); + var arrayPageScroll = TB_getPageScrollTop(); + $("#TB_window").css({height:TB_HEIGHT+"px",width:TB_WIDTH+"px",left: ((pagesize[0] - TB_WIDTH)/2)+"px", top: (arrayPageScroll[1] + ((pagesize[1]-TB_HEIGHT)/2))+"px" }); + TB_overlaySize(); +} + +function TB_overlaySize(){ + if (window.innerHeight && window.scrollMaxY) { + yScroll = window.innerHeight + window.scrollMaxY; + } else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac + yScroll = document.body.scrollHeight; + } else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari + yScroll = document.body.offsetHeight; + } + $("#TB_overlay").css("height",yScroll +"px"); +} + +function TB_load_position() { + var pagesize = TB_getPageSize(); + var arrayPageScroll = TB_getPageScrollTop(); + + $("#TB_load") + .css({left: ((pagesize[0] - 100)/2)+"px", top: (arrayPageScroll[1] + ((pagesize[1]-100)/2))+"px" }) + .css({display:"block"}); +} + +function TB_parseQuery ( query ) { + var Params = new Object (); + if ( ! query ) return Params; // return empty object + var Pairs = query.split(/[;&]/); + for ( var i = 0; i < Pairs.length; i++ ) { + var KeyVal = Pairs[i].split('='); + if ( ! KeyVal || KeyVal.length != 2 ) continue; + var key = unescape( KeyVal[0] ); + var val = unescape( KeyVal[1] ); + val = val.replace(/\+/g, ' '); + Params[key] = val; + } + return Params; +} + +function TB_getPageScrollTop(){ + var yScrolltop; + if (self.pageYOffset) { + yScrolltop = self.pageYOffset; + } else if (document.documentElement && document.documentElement.scrollTop){ // Explorer 6 Strict + yScrolltop = document.documentElement.scrollTop; + } else if (document.body) {// all other Explorers + yScrolltop = document.body.scrollTop; + } + arrayPageScroll = new Array('',yScrolltop) + return arrayPageScroll; +} + +function TB_getPageSize(){ + var de = document.documentElement; + var w = window.innerWidth || self.innerWidth || (de&&de.clientWidth) || document.body.clientWidth; + var h = window.innerHeight || self.innerHeight || (de&&de.clientHeight) || document.body.clientHeight; + + arrayPageSize = new Array(w,h) + return arrayPageSize; +} + +function TB_strpos(str, ch) { + for (var i = 0; i < str.length; i++) { + if (str.substring(i, i+1) == ch) return i; + } + return -1; +} + +// vim: set ts=4 sw=4 tw=0 fenc=utf-8 ft=javascript: // |