Merge branch 'feature-newstyles' into develop
[snf-cloudcms] / cloudcms / static / cloudcms / js / common.js
index b29d13f..583b8f8 100644 (file)
@@ -13,11 +13,84 @@ function setContainerMinHeight( applicableDiv){
 \r
 }\r
 \r
-$(document).ready(function() {\r
+function tableFixedCols(table, firstColWidth ){\r
+       ColsNum = $('table th').size();\r
+       var ColWidth = parseFloat( (100 - firstColWidth)/ColsNum ).toFixed(0);\r
+       var ColWidthPercentage = ColWidth+'%';\r
+       var firstColWidthPercentage = firstColWidth+'%';\r
+       $('.projects table th, .projects  table td').attr('width',ColWidthPercentage ); \r
+       $('.projects table tr td:first-child,.projects  table tr th:first-child').attr('width',firstColWidthPercentage );\r
        \r
-        \r
-    setContainerMinHeight('.container .wrapper');\r
+}\r
+\r
+function addClassHover(hoverEl, applicableEl){ \r
+       $(hoverEl).hover(\r
+      function () {\r
+        \r
+         $(applicableEl).addClass('red-border')\r
+      }, \r
+      function () {\r
+       $(applicableEl).removeClass('red-border');\r
     \r
+    });\r
+}\r
+//equal heights\r
\r
+(function($) {\r
+       $.fn.equalHeights = function(minHeight, maxHeight) {\r
+               tallest = (minHeight) ? minHeight : 0;\r
+               this.each(function() {\r
+                       if($(this).height() > tallest) {\r
+                               tallest = $(this).height();\r
+                       }\r
+               });\r
+               if((maxHeight) && tallest > maxHeight) tallest = maxHeight;\r
+               return this.each(function() {\r
+                       $(this).height(tallest);\r
+               });\r
+       }\r
+})(jQuery);\r
+\r
+\r
+\r
+// fix for iPhone - iPad orientation bug \r
+var metas = document.getElementsByTagName('meta');\r
+function resetViewport() {\r
+    var i;\r
+    if (navigator.userAgent.match(/iPhone/i)) {\r
+               for (i=0; i<metas.length; i++) {\r
+               if (metas[i].name == "viewport") {\r
+                       metas[i].content = "width=device-width, minimum-scale=1.0, maximum-scale=1.0";\r
+               }\r
+               }\r
+       }\r
+}\r
+resetViewport();\r
+    \r
+window.onorientationchange = function() {\r
+    resetViewport();\r
+};\r
+    \r
+function gestureStart() {\r
+  for (i=0; i<metas.length; i++) {\r
+    if (metas[i].name == "viewport") {\r
+      metas[i].content = "width=device-width, minimum-scale=0.25, maximum-scale=1.6";\r
+    }\r
+  }\r
+}\r
+\r
+if (navigator.userAgent.match(/iPhone/i)) {\r
+       document.addEventListener("gesturestart", gestureStart, false);\r
+}\r
+//end of fix\r
+\r
+  \r
+$(document).ready(function() {\r
+   \r
+\r
+\r
+    setContainerMinHeight('.container .wrapper');\r
+    tableFixedCols('my-projects', 25);\r
        \r
     $('.show-extra').click(function(e) {\r
         e.preventDefault();\r
@@ -38,11 +111,13 @@ $(document).ready(function() {
                $('.mainlogo').css('marginTop','-'+topMargin+'px');\r
        }\r
        \r
-       if ($('.mainlogo img').length > 0) {\r
-               $('.mainlogo img').bind('load', fixTopMessageHeight)\r
-       } else {\r
-               fixTopMessageHeight();\r
-       }\r
+  // Uncomment to hide logo upon top message appearance\r
+\r
+       // if ($('.mainlogo img').length > 0) {\r
+       //      $('.mainlogo img').bind('load', fixTopMessageHeight)\r
+       // } else {\r
+       //      fixTopMessageHeight();\r
+       // }\r
        \r
        $('.top-msg a.close').click(function(e) {\r
                e.preventDefault();\r
@@ -59,46 +134,30 @@ $(document).ready(function() {
              //todo\r
         });\r
     });        \r
-    //$('select').dropkick();\r
-    \r
\r
-    \r
-    $('.top-msg .success').parents('.top-msg').css(\r
-       {\r
-               backgroundColor: '#77C596',\r
-               color: '#fff'\r
-       }\r
-    );\r
-    \r
-    $('.top-msg .error').parents('.top-msg').css(\r
-       {\r
-               backgroundColor: '#EF4F54',\r
-               color: '#fff'\r
-       }\r
-    );\r
     \r
+     \r
+       $('select.dropkicked').dropkick({\r
+               change: function (value, label) {\r
+                   $(this).parents('form').submit();\r
+                   \r
+               }\r
+       });\r
+       \r
+       $('.with-info select').attr('tabindex','1');\r
+    $('.with-info select').dropkick();\r
     \r
-    $('.top-msg .warning').parents('.top-msg').css(\r
-       {\r
-               backgroundColor: '#F6921E',\r
-               color: '#fff'\r
-       }\r
-    );\r
-    \r
-    $('.top-msg .info').parents('.top-msg').css(\r
-       {\r
-               backgroundColor: '#C3C3B9',\r
-               color: '#fff'\r
-       }\r
-    );\r
+    $('.top-msg .success').parents('.top-msg').addClass('success');\r
+    $('.top-msg .error').parents('.top-msg').addClass('error');\r
+    $('.top-msg .warning').parents('.top-msg').addClass('warning');\r
+    $('.top-msg .info').parents('.top-msg').addClass('info');\r
     \r
     // clouds homepage animation\r
     $('#animation a').hover(\r
       function () {\r
        \r
         $(this).animate({\r
-           top: '+=-10'   \r
-           }, 600, function() {\r
+           top: '+=-3'   \r
+           }, 0, function() {\r
                if ($(this).find('img').attr('src').indexOf("_top") == -1) {\r
                        var src = $(this).find('img').attr('src').replace('.png', '_top.png')\r
                        $(this).find('img').attr("src", src);\r
@@ -107,7 +166,7 @@ $(document).ready(function() {
                });\r
         $(this).siblings('p').find('img').animate({\r
           width: '60%'       \r
-        });\r
+        }, 600);\r
       }, \r
       function () {\r
 \r
@@ -117,44 +176,190 @@ $(document).ready(function() {
                });\r
         $(this).siblings('p').find('img').animate({\r
           width: '65%'       \r
-        });\r
+        },600);\r
       }\r
     );\r
     \r
     \r
-    /*$('#animation a').hover(\r
-      function () {\r
-       var src = $(this).find('img').attr('src').replace('.png', '_top.png')\r
-        $(this).find('img').attr("src", src);\r
-        $(this).animate({\r
-           top: '+=-10'   \r
-           }, 600, function() {\r
-                       // action to do when animation is finished\r
-               });\r
-        $(this).siblings('p').find('img').animate({\r
-          width: '60%'       \r
+    \r
+    \r
+    $(function() {              \r
+               $( "#id_start_date" ).datepicker({\r
+                       minDate: 0,\r
+                       defaultDate: "+0", \r
+            dateFormat: "yy-mm-dd",\r
+            onSelect: function( selectedDate ) {\r
+                $( "#id_end_date" ).datepicker( "option", "minDate", selectedDate );\r
+            }\r
         });\r
-      }, \r
-      function () {\r
-       \r
-        $(this).animate({\r
-         top: '0'   \r
-            \r
-        }, 600, function() {\r
-               var src = $(this).find('img').attr('src').replace('_top.png', '.png')\r
-               $(this).find('img').attr("src", src);\r
-               });\r
-        $(this).siblings('p').find('img').animate({\r
-          width: '65%'       \r
+        \r
+        $( "#id_end_date" ).datepicker({\r
+               defaultDate: "+3w", \r
+            dateFormat: "yy-mm-dd",\r
+            onSelect: function( selectedDate ) {\r
+                $( "#id_start_date" ).datepicker( "option", "maxDate", selectedDate );\r
+            }\r
         });\r
+       });\r
+       \r
+        \r
+       \r
+       $('table .more-info').click(function(e){\r
+               e.preventDefault();\r
+               $(this).toggleClass('open');\r
+               if ($(this).hasClass('open')){\r
+                       $(this).html('- less info ')\r
+               } else {\r
+                       $(this).html('+ more info ')\r
+               }\r
+               $(this).parents('tr').next('tr').toggle();\r
+                \r
+       });\r
+       \r
+       $('.projects .details .edit').click( function(e){\r
+               e.preventDefault();\r
+               $(this).parents('.details').children('.data').hide();\r
+               $(this).parents('.details').children('.editable').slideDown(500, 'linear');\r
+               $(this).hide();\r
+       });\r
+       \r
+       $('.editable .form-row').each(function() {\r
+                       if ( $(this).hasClass('with-errors') ){\r
+                               $('.editable').show();\r
+                               $('.projects .details a.edit, .projects .details .data').hide();\r
+                               \r
+                       }\r
+               });\r
+       \r
\r
+       $("input.leave, input.join").click(function () {\r
+               $('dialog').hide();\r
+               $(this).parents('.msg-wrap').find('.dialog').show();\r
+               return false;      \r
+               \r
+    });\r
+    \r
+     $('.msg-wrap .no').click( function(e){\r
+               e.preventDefault();\r
+               $(this).parents('.dialog').hide();\r
+       })\r
+    \r
+    $('.msg-wrap .yes').click( function(e){\r
+               e.preventDefault();\r
+               $(this).parents('.dialog').siblings('form').submit();\r
+       })\r
+    \r
+    $('.hidden-submit input[readonly!="True"]').focus(function () {\r
+         $('.hidden-submit .form-row.submit').slideDown(500);\r
+    });\r
+    \r
+    \r
+    \r
+   \r
+      \r
+    \r
+    setTimeout(function() {\r
+      if ($('input#id_username').val()){ \r
+       $('input#id_username').siblings('label').css('opacity','0');\r
+      };\r
+      if ($('input#id_password').val()){ \r
+       $('input#id_password').siblings('label').css('opacity','0');\r
       }\r
-    );*/\r
+       }, 100);\r
+       \r
+       \r
+       \r
+       \r
+       $('.landing-page .cms').hover(\r
+      function () {\r
+        el = $('.cloudbar ul.services li').first();\r
+        var offset = el.offset();\r
+        positionX = offset.left;\r
+        $('#hand').css('left',positionX);               \r
+         $('#hand').show();\r
+      }, \r
+      function () {\r
+       $('#hand').hide();\r
     \r
+    });  \r
     \r
-});\r
+    $('.landing-page .pithos').hover(\r
+      function () {\r
+        el = $('.cloudbar ul.services li:nth-child(3)');\r
+        var offset = el.offset();\r
+        positionX = offset.left;\r
+        left = parseInt(positionX) +20;\r
+        $('#hand').css('left',left+'px');               \r
+         $('#hand').show();\r
+      }, \r
+      function () {\r
+       $('#hand').hide();\r
+    \r
+    });  \r
+    \r
+    $('.landing-page .cyclades').hover(\r
+      function () {\r
+        el = $('.cloudbar ul.services li:nth-child(2)').first();\r
+        var offset = el.offset();\r
+        positionX = offset.left;\r
+        left = parseInt(positionX) +20;\r
+        $('#hand').css('left',left+'px');               \r
+         $('#hand').show();\r
+      }, \r
+      function () {\r
+       $('#hand').hide();\r
+    \r
+    });  \r
+    \r
+    \r
+    $('.landing-page .dashboard').hover(\r
+      function () {\r
+        el = $('.cloudbar .profile');\r
+        var offset = el.offset();\r
+        positionX = offset.left +50;\r
+        $('#hand').css('left',positionX);               \r
+         $('#hand').show();\r
+      }, \r
+      function () {\r
+       $('#hand').hide();\r
+    \r
+    });  \r
+    \r
+    $('.pagination a.disabled').click(function(e){\r
+       e.preventDefault();\r
+    });\r
+         \r
+       // fix for recaptcha fields\r
+       $('#okeanos_recaptcha').parents('.form-row').find('.extra-img').hide();\r
+\r
+  fixEl = $('.details .lt');\r
+  if (fixEl.length){ window.fixEloffsetTop = fixEl.offset().top;} \r
+  \r
+\r
+  $(".stats-block li em").equalHeights();\r
 \r
\r
+});\r
+       \r
 $(window).resize(function() {\r
     \r
    setContainerMinHeight('.container .wrapper');\r
+    \r
 \r
 });\r
+\r
+\r
+/* js for fixed faq/userguide side nav */\r
+$(window).scroll(function () {\r
+\r
+  if ( $('.details .lt').height() < $('.details .rt').height() ) {\r
+    if ($(window).scrollTop() > window.fixEloffsetTop){ \r
+      fixEl.addClass('fixed');\r
+    } else {\r
+      fixEl.removeClass('fixed');\r
+    }\r
+  }\r
+\r
+\r
+\r
+});