added small interface
[GITManagedWebpage.git] / GITManagedWebpage.class.php
index 3f6ba4aae7772b0ee2d943f53ea4eaa9d57daf94..2a3076f73a5770607bfbd7ed04c70fc689990eb9 100644 (file)
@@ -345,6 +345,124 @@ Deny from all
         }
     }
     
+    public function showMngrWindow() {
+        $html = '<script type="text/javascript" src="http://lib.pk910.de/jquery.min.js"></script>';
+        $html .= '<script type="text/javascript" src="http://lib.pk910.de/jquery-ui/jquery-ui.min.js"></script>';
+        $html .= '<script type="text/javascript" src="http://lib.pk910.de/jquery-migrate.min.js"></script>';
+        $html .= '<script type="text/javascript" src="http://lib.pk910.de/jquery.window/jquery.window.js"></script>';
+        $html .= '<script type="text/javascript" src="http://lib.pk910.de/jquery.cookie/jquery.cookie.js"></script>';
+        $html .= '<link type="text/css" href="http://lib.pk910.de/jquery-ui/jquery-ui.min.css" rel="stylesheet" />';
+        $html .= '<link type="text/css" href="http://lib.pk910.de/jquery.window/css/jquery.window.css" rel="stylesheet" />';
+        
+        $current_branch = $this->getActiveBranch();
+        $current_version = substr($this->getConfig('version_'.$current_branch), 0, 7);
+        $html .= <<<HTML_END
+<div id="gitmanagedwindow" style="display:none;">
+    <table width="100%" class="gitmanaged">
+        <tr>
+            <td colspan="2" align="center">
+                <h2>GITManagedWebpage</h2>
+            </td>
+        </tr>
+        <tr>
+            <td width="150px">current branch:</td>
+            <td>{$current_branch}</td>
+        </tr>
+        <tr>
+            <td>current version:</td>
+            <td>{$current_version}</td>
+        </tr>
+        <tr>
+            <td colspan="2" align="center"><input type="button" value="update branch" class="update"></td>
+        </tr>
+    </table>
+</div>
+
+<script type="text/javascript">
+$.window.prepare({
+   dock: 'right',
+   animationSpeed: 200,
+   minWinLong: 65
+});
+
+var cookie_prefix = 'gitmanaged_';
+var win = $.window({
+    icon: 'http://lib.pk910.de/_ico/git.ico',
+    title: "GIT Managed Webpage",
+    content: $('#gitmanagedwindow').html(),
+    checkBoundary: true,
+    withinBrowserWindow: true,
+    
+    maximizable: false,
+    closable: false,
+    
+    width: 200,
+    height: 150,
+    
+    onMinimize: function(wnd) {
+        $.cookie(cookie_prefix+'minimized', '1');
+    },
+    onCascade: function(wnd) {
+        $.removeCookie(cookie_prefix+'minimized');
+    },
+    afterDrag: function(wnd) {
+        var pos = wnd.getContainer().position();
+        $.cookie(cookie_prefix+'pos', pos.left + ';' + pos.top)
+    },
+});
+
+function updateURLParameter(url, param, paramVal) {
+    var TheAnchor = null;
+    var newAdditionalURL = "";
+    var tempArray = url.split("?");
+    var baseURL = tempArray[0];
+    var additionalURL = tempArray[1];
+    var temp = "";
+    if (additionalURL) {
+        var tmpAnchor = additionalURL.split("#");
+        var TheParams = tmpAnchor[0];
+            TheAnchor = tmpAnchor[1];
+        if(TheAnchor)
+            additionalURL = TheParams;
+        tempArray = additionalURL.split("&");
+        for (i=0; i<tempArray.length; i++) {
+            if(tempArray[i].split('=')[0] != param) {
+                newAdditionalURL += temp + tempArray[i];
+                temp = "&";
+            }
+        }        
+    } else {
+        var tmpAnchor = baseURL.split("#");
+        var TheParams = tmpAnchor[0];
+            TheAnchor  = tmpAnchor[1];
+        if(TheParams)
+            baseURL = TheParams;
+    }
+    if(TheAnchor)
+        paramVal += "#" + TheAnchor;
+    var rows_txt = temp + "" + param + "=" + paramVal;
+    return baseURL + "?" + newAdditionalURL + rows_txt;
+}
+
+var container = win.getContainer();
+container.find('.update').on('click', function() {
+    var url = updateURLParameter(window.location.href, "update", "1");
+    window.location.href = url;
+});
+
+if($.cookie(cookie_prefix+'pos')) {
+    var pos = $.cookie(cookie_prefix+'pos').split(';');
+    container.css("left", pos[0]);
+    container.css("top", pos[1]);
+}
+if($.cookie(cookie_prefix+'minimized'))
+    win.minimize();
+
+</script>
+HTML_END;
+        return $html;
+    }
+    
 }
 
 ?>
\ No newline at end of file