项目准备(view)

管理员登陆界面-manage-admin

  1 <!DOCTYPE html>
  2 <html lang="zh-cn">
  3 <head>
  4     <meta charset="utf-8">
  5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6     <meta name="robots" content="noindex,nofollow">
  7     <meta name="description" content="Description">
  8     <meta name="keywords" content="keyword, keyword, keyword">
  9     
 10     <title><?php echo $this->get_var('title')?></title>
 11 
 12     <link href="/css/bootstrap.css" rel="stylesheet">
 13     <!--  <link href="/css/bootstrap-theme.css" rel="stylesheet">-->
 14     <link href="/css/style.css" rel="stylesheet">
 15 
 16     <script src="/js/jquery.js"></script>
 17     <script src="/js/bootstrap.js"></script>
 18     <script src="/plugins/layer/layer.min.js"></script>
 19     <!--  <script src="/js/core.js"></script>-->
 20     <script src="/js/custom.js"></script>
 21     <script type="text/javascript">
 22     function logout(){
 23         if (confirm("退出确认?"))
 24         window.location = '<?php echo Server::getRootURL().'logout';?>';
 25         return false;
 26     }
 27     $(document).ready(function() {
 28         $.post("/user/userMessage",    //若是管理员则获取apply的个数
 29                 function (data){
 30                 //alert("hello");
 31                     if(data>0){
 32                             $("#applynum").append(data);
 33                     }
 34                     else{
 35                         $("#applynum").append("0");
 36                     }
 37                 },
 38                 "json");
 39         
 40     });
 41     </script>
 42     
 43 </head>
 44 <body>
 45     <header class="container">
 46         <div class="row">
 47             <div class="col-md-6"><h1>互联网离线学习系统</h1></div>
 48             <div class="col-md-6">
 49                 <ul class="nav nav-pills pull-right">
 50                     <li class="active"><a href="#"><i class="icon-home icon-black"></i> 首页</a></li>
 51                     <li><a href="#"><i class="icon-envelope icon-black"></i> 
 52                         <?php session_start();
 53                                     if(isset($_SESSION['user_name'])){
 54                                         $user_name="<span>".$_SESSION['user_name']."</span>";
 55                                     }else{
 56                                         $user_name="<span>未登录</span>";
 57                                     }
 58                                     echo $user_name;
 59                         ?></a></li>
 60                     <li><a href="#"><i class="icon-envelope icon-black"></i>管理员</a></li>
 61                     <li><a id="message" href="/view/apply"><i class="icon-envelope icon-black"></i> 消息 <span class="badge badge-info" id="applynum"></span></a></li>
 62                     <li><a href="#" onClick="logout()"><i class="icon-off icon-black"></i> 退出系统</a></li>
 63                 </ul>
 64             </div>
 65         </div>
 66     </header>
 67     
 68     <div class="navbar navbar-inverse wm-navbar">
 69         <div class="container">
 70         <div class="navbar-header">
 71             <a class="navbar-brand" href="#">
 72             Internet Protocal Recognition Offline Learning System
 73             </a>
 74         </div>
 75         </div>
 76     </div>
 77     <div class="container wm-container">
 78         <div class="row">
 79             <div class="col-md-3" >
 80                 <div class="sidebar" style="display:block;">
 81                     <ul class="nav sidebar-nav">
 82                         <li class="nav-title">系统功能</li>
 83                         <li>
 84                             <a href="#">
 85                             <i class="glyphicon glyphicon-stats"></i> 集群管理
 86                             <span class="caret pull-right"></span>
 87                             </a>
 88                             <ul class="nav">
 89                                 <li class="navitem"><a href="/view/systemControl">系统启动控制</a></li>
 90                                 <li class="navitem"><a href="/view/nameNodeState">NameNode查询</a></li>
 91                                 <li class="navitem"><a href="/view/jobTrackerState">JobTracker查询</a></li>
 92                             </ul>
 93                         </li>
 94                         <li><a href="#"><i class="glyphicon glyphicon-list"></i> 任务管理
 95                             <span class="caret pull-right"></span>
 96                             </a>
 97                             <ul class="nav">
 98                                 <li class="navitem"><a href="/view/fileManage">HDFS管理</a></li>
 99                                 <li class="navitem"><a href="/view/detectionManage">新建任务</a></li>
100                             </ul>
101                         </li>
102                         <li><a href="#"><i class="glyphicon glyphicon-cog"></i> 用户管理
103                             <span class="caret pull-right"></span>
104                             </a>
105                             <ul class="nav">
106                                 <li class="navitem"><a href="/view/userInfo">个人信息</a></li>
107                                 <li class="navitem"><a href="/view/password">修改密码</a></li>
108                                 <li class="navitem"><a href="/view/apply">用户管理</a></li>
109                             </ul>
110                         </li>
111                         <li><a href="#"><i class="glyphicon glyphicon-thumbs-up"></i> 帮助信息
112                             <span class="caret pull-right"></span>
113                             </a>
114                             <ul class="nav">
115                                 <li class="navitem"><a href="/view/introduction" target="nav-content">系统介绍</a></li>
116                                 <li class="navitem"><a href="/view/connect" target="nav-content">联系我们</a></li>
117                             </ul>
118                         </li>
119                     </ul>
120                 </div>
121             </div>
122             <div class="preview-iframe" id="nav-content" >
123                 <section>
124                     Comming soon.
125                 </section>
126             </div>
127         </div>
128     
129     </div>
130     <!--<footer class="center-block text-center">
131         <hr>
132         <p><small>Firefox 4/Chrome 10/Safari 5/Opera 11 or higher version, with 1024x768 or higher resolution for best views.<br>Copyright &copy; 2012 by BUPT-DMTeam.All rights reserved </small></p>
133     </footer>  -->
134 </body>
135 </html>

用户注册页面

  1 <!DOCTYPE html>
  2 <html lang="zh-cn">
  3 <head>
  4 <meta charset="UTF-8">
  5 <meta name="viewport" content="width=device-width,initial-scale=1.0">
  6 <!-- Bootstrap -->
  7 <link rel="stylesheet" href="/css/bootstrap.css">
  8 <link rel="stylesheet" href="/css/style.css">
  9 <style>
 10             
 11 body{font-family:"ff-tisa-web-pro-1","ff-tisa-web-pro-2","Lucida Grande","Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","WenQuanYi Micro Hei",sans-serif;}
 12 h1, .h1, h2, .h2, h3, .h3, h4, .h4, .lead {font-family:"ff-tisa-web-pro-1","ff-tisa-web-pro-2","Lucida Grande","Helvetica Neue",Helvetica,Arial,"Hiragino Sans GB","Hiragino Sans GB W3","Microsoft YaHei UI","Microsoft YaHei","WenQuanYi Micro Hei",sans-serif;}
 13 pre code { background: transparent; }
 14 @media (min- 768px) {
 15     .bs-docs-home .bs-social, 
 16     .bs-docs-home .bs-masthead-links {
 17       margin-left: 0;
 18     }
 19 }
 20 
 21 .bs-docs-section p {
 22     line-height: 2;
 23 }
 24 
 25 .bs-docs-section p.lead {
 26     line-height: 1.4;
 27 }
 28 
 29 
 30             
 31     </style>
 32 <title><?php echo $this->get_var('title');?></title>
 33     
 34 <script src="/js/jquery.js"></script>
 35 <script src="/js/bootstrap.js"></script>
 36 
 37 <script type="text/javascript">
 38 
 39 //判断用户输入的用户名是否可用
 40 function checkUsername(){
 41     if($("#user_name").val()!=""){
 42            $.post("/user/serviceUserNameCheck", 
 43                 { memberid:$("#user_name").val()},
 44                 function (data, textStatus){
 45                     if(data.isMemberIdUsed==true){
 46                         $("#user_name").addClass("ok");
 47                     }else{
 48                         $("#user_name").removeClass("ok");
 49                     }
 50                 }, 
 51                 "json");
 52     }
 53 }
 54 
 55 //检查用户的密码是否合法,目前密码的唯一要求就是不能为空
 56 function checkPassword(){
 57     var password=$("#password").val();
 58        if(password==""){
 59               $("#password").removeClass("ok");
 60        }
 61        else{
 62            $("#password").addClass("ok");
 63     }
 64 }
 65 
 66 function checkRePassword(){
 67     var password=$("#password").val();
 68     var rePassword=$("#repassword").val();
 69     if(rePassword==""){
 70         $("#repassword").removeClass("ok");
 71     }
 72     else{
 73         if(password!=rePassword){
 74             $("#repassword").removeClass("ok");
 75         }
 76         else{
 77             $("#repassword").addClass("ok");
 78         }
 79     }
 80 }
 81 
 82 function checkSubmit(){
 83     var username=false;
 84     var password=false;
 85     var repassword=false;
 86     var agree=document.getElementById("agree").checked;
 87 
 88     if($("#user_name").hasClass("ok") && ($("#user_name").val()!="")){
 89         username=true;
 90     }
 91     if($("#password").hasClass("ok")){
 92         password=true;
 93     }
 94     if($("#repassword").hasClass("ok")){
 95         repassword=true;
 96     }
 97     if(username && password && repassword && agree){
 98         $("#formRegist").submit();
 99     }
100 }
101 </script>
102 </head>
103 <body>
104     <div class="navbar navbar-inverse navbar-static-top header" >
105         <div class="container">
106             <div class="navbar-header">
107                 <a class="navbar-brand" href="#"><?php echo $this->get_var('logo_text');?></a>
108             </div>
109             <div class="collapse navbar-collapse">
110             <ul class="nav navbar-nav">
111                 <li class="active"><a href="#">首页</a></li>
112                 <li><a class="#">关于我们</a></li>
113                 <li><a href="#">联系我们</a></li>
114             </ul>
115             </div>
116         </div>
117     </div>
118     <div class="container">
119             <div class="wm-register-box well m-well center-block">
120                 <div class="panel-heading">
121                     <div class="panel-title">新用户注册</div>
122 
123                 </div>
124                 <div class="panel-body">
125                     <form class="form-horizontal" id="formRegist" role="form" action="/user/serviceRegister" method="post">
126                         <div class="form-group">
127                             <label for="user_name" class="col-md-2 control-panel">
128                                 用户名:
129                             </label>
130                         <div class="col-md-10">
131                             <input type="text" class="form-control" id="user_name" name="user_name" placeholder="请输入用户名" onblur="checkUsername()">
132                         </div>
133                         </div>
134                         <div class="form-group">
135                             <label for="password" class="col-md-2 control-panel">
136                                 密码:
137                             </label>
138                             <div class="col-md-10">
139                                 <input type="password" class="form-control" id="password" name="password" placeholder="密码" onblur="checkPassword()">
140                                     <p class="help-block">
141                                         最少6个字符 (只允许数字字母)
142                                     </p>
143                             </div>
144                         </div>
145                         <div class="form-group">
146                             <label for="repassword" class="col-md-2 control-panel">
147                                 确认密码:
148                             </label>
149                             <div class="col-md-10">
150                                 <input type="password" class="form-control" id="repassword" name="repassword" placeholder="请再次输入密码" onblur="checkRePassword()">
151                             </div>
152                         </div>
153                         <div class="form-group">
154                             <label for="emailaddress" class="col-md-2 control-panel">
155                                 邮箱地址:
156                             </label>
157                             <div class="col-md-10">
158                                 <input type="email" class="form-control" id="emailaddress" name="email" placeholder="邮箱地址">
159                                     <p class="help-block">
160                                         例如: yourname@domain.com
161                                     </p>
162                             </div>
163                         </div>
164         
165         
166                         <div class="form-group">
167                             <label for="role" class="col-md-2 control-panel">
168                                 用户角色:
169                             </label>
170                             <div class="col-md-10">
171                                 <label class="radio">
172                                     <input type="radio" name="role" id="role" value="normal" checked>
173                                         普通用户
174                                 </label>
175                                 <label class="radio">
176                                     <input type="radio" name="role" id="role" value="admin">
177                                         管理员用户
178                                 </label>
179                             </div>
180                         </div>
181         
182                         <div class="form-group">
183                             <label for="describe" class="col-md-2 control-panel">
184                                 备注:
185                             </label>
186                             <div class="col-md-10">
187                                 <textarea class="form-control" id="comment" name="comment" ></textarea>
188                             </div>
189                         </div>
190         
191                         <div class="checkbox">
192                             <div class="col-md-2 control-panel">
193                             </div>
194                             <div class="col-md-10">
195                                 <label>
196                                     <input type="checkbox" id="agree">
197                                         同意使用协议和所有条款
198                                 </label>
199                             </div>
200                         </div>
201         
202                         <div class="row">
203                             <div class="col-md-2 control-panel">
204                             </div>
205                             <div class="col-md-2">
206                                 <button type="button" class="btn btn-info" id="submitRegist" onClick="checkSubmit()">
207                                     提交注册
208                                 </button>
209                             </div>
210                         </div>
211                 </form>
212             </div>
213         </div>
214     </div>
215 </body>
216 </html>

查看用户信息界面user_info

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="robots" content="noindex,nofollow">
    <meta name="description" content="Description">
    <meta name="keywords" content="keyword, keyword, keyword">
    <title><?php echo $this->get_var('title')?></title>

    <link href="/css/bootstrap.css" rel="stylesheet">
    <link href="/css/style.css" rel="stylesheet">
    <script src="/js/jquery.js"></script>
    <script src="/js/bootstrap.js"></script>
    <script src="/js/jquery.form.js"></script>
    
    <script type="text/javascript">
    // onsubmit="return alertUser();"
        function alertUser(){
            // jquery 表单提交
            $("#refreshForm").ajaxSubmit(function(data) {
                  // 对于表单提交成功后处理,message为提交页面operation.htm的返回内容
                var obj = eval ("(" + data + ")");      
                if(obj.retval==true){
                    $("#success-confirm").show();
                }else{
                    $("#fail-confirm").show();
                }
               });
            return false; // 必须返回false,否则表单会自己再做一次提交操作,并且页面跳转
        }
    
    $(document).ready(function(){
        $("#success-confirm").hide();
        $("#fail-confirm").hide();
        $.ajax({
            url:'/user/getUserInfo',
            type:'POST',
            success:function(data){
                var obj = eval ("(" + data + ")");      
                $("#name").val(obj.name);
                $("#role").val(obj.role);
                $("#email").val(obj.email);
                $("#comment").val(obj.comment);
            }
        });
    });
    
    </script>
    
</head>
    <body>
    <div id="subContent">
        <div class="row col-md-12">
        <div>
            <ul class="breadcrumb">
                        <li><a href="#">系统功能</a> <span class="divider"></span></li>
                        <li><a href="#">用户管理</a> <span class="divider"></span></li>
                        <li class="active">个人信息</li>
            </ul>
        </div>

        <div class="alert alert-success" id="success-confirm">
            <strong>更新成功:</strong>用户数据已经更新
            <button type="button" class="close" data-dismiss="alert">×</button>
        </div>
        
        <div class="alert alert-success" id="fail-confirm">
            <strong>更新失败:</strong>用户数据更新失败
            <button type="button" class="close" data-dismiss="alert">×</button>
        </div>
        
            <div class="well center-block">
            
            <form class="form-horizontal" role="form">    
                <div class="form-group">
                    
                    <label for="name" class="col-sm-2 control-label">用户名:</label>
                    <div class="col-sm-10"><input type="text" class="form-control" id="name"></div>
                    
                </div>
                
                <div class="form-group">
                        <label for="role" class="col-sm-2 control-label">用户权限:</label>
                        
                    <div class="col-sm-10">
                        <input type="text" class="form-control" id="role">
                    </div>
                </div>
            </form>
                    
            <form class="form-horizontal" id="refreshForm" action="/user/userBasicInfoUpdate" 
                    method="post" onsubmit="return alertUser();">        
                <div class="form-group">
                    <label for="email" class="col-sm-2 control-label">邮箱:</label>
                        
                    <div class="col-md-10">
                        <input type="email" class="form-control" id="email" name="email">
                    </div>
                </div>
                
                <div class="form-group">
                    <label for="comment" class="col-md-2 control-label">
                        描述:
                    </label>
                    <div class="col-md-10">
                        <textarea class="form-control" id="comment" name="comment"></textarea>
                    </div>
                </div>

                <div class="row">
                    <div class="col-md-2 control-label">
                    </div>
                    <div class="col-md-10">
                        <button type="submit" class="btn btn-success pull-right">
                            更新信息
                        </button>
                    </div>
                </div>
            </form>
            </div>
        </div>
    </div>
</body>
</html>

文件管理file_manage

<!DOCTYPE html>
<html lang="zh-cn">
<html>
<HEAD>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="robots" content="noindex,nofollow">
    <meta name="description" content="Description">
    <meta name="keywords" content="keyword, keyword, keyword">
    <title>互联网离线学习系统</title>

    <link href="/css/bootstrap.css" rel="stylesheet" id="bootstrap-css">
    <link rel="stylesheet" href="/plugins/zTree_v3/css/zTreeStyle/zTreeStyle.css" type="text/css">
    <link href="/css/style.css" rel="stylesheet">
    <script src="/js/jquery.js"></script>
    <script src="/js/bootstrap.js"></script>    

    
    <script type="text/javascript" src="/plugins/zTree_v3/js/jquery.ztree.core-3.5.js"></script>
    <script type="text/javascript" src="/plugins/zTree_v3/js/jquery.ztree.excheck-3.5.js"></script>
    <script type="text/javascript" src="/plugins/zTree_v3/js/jquery.ztree.exedit-3.5.js"></script>
        
    <SCRIPT type="text/javascript">
    //global var
    var uploadType="uploadMethod";
    //normal js        
    function showConfiguration(str){
        if(str=="upload"){
            document.getElementById("uploadMethod").style.display="block";
            document.getElementById("browseMethod").style.display="none";
            uploadType="uploadMethod";
        }else{
            document.getElementById("uploadMethod").style.display="none";
            document.getElementById("browseMethod").style.display="block";
            uploadType="browseMethod";
        }
        }
    
    

        //ztree 
        var setting = {
            async: {
                enable: true,
                url:"/file/getNodes",
                autoParam:["id", "name", "location"],
                otherParam:{"otherParam":"zTreeAsyncTest"},
                dataFilter: filter
            },
            view: {
                expandSpeed:"fast", //zTree 节点展开、折叠时的动画速度,设置为 "" 时,不显示动画效果
                addHoverDom: addHoverDom, //用于当鼠标移动到节点上时,显示用户自定义控件,显示隐藏状态同 zTree 内部的编辑、删除按钮
                removeHoverDom: removeHoverDom, //用于当鼠标移出节点时,隐藏用户自定义控件,显示隐藏状态同 zTree 内部的编辑、删除按钮
                selectedMulti: false, //不许同时选中多个节点
                dblClickExpand: false
            },
            check: {
                enable: false
            },
            edit: {
            enable: true,
                    editNameSelectAll: true,
                    showRemoveBtn:true,
                    ShowRenameBtn:true,
                    removeTitle: "删除",
                    renameTitle: "编辑"
            },
            data: {
                keep:{
                    leaf:true,
                    parent:true
                },
                simpleData: {
                    enable: true
                }
            },
            callback: {
                beforeDrag: zTreeBeforeDrag, //禁止拖动
                beforeRemove: beforeRemove,
                beforeRename: beforeRename,
                onRemove:onRemove,
                onRename:onRename,
                onRightClick:OnRightClick
            }
        };

        var urlStrOption ="";//对于树节点的增删改操作ajax异步处理的url地址
            var params="";       //ajax异步处理需要传入到服务端的数据
            var oldName="";      //保存当前节点编辑以前的名称
              
        function filter(treeId, parentNode, childNodes) {
            if (!childNodes) return null;
            return childNodes;
        }
        
        function zTreeBeforeDrag(treeId, treeNodes) {
            return false;
        };

        function beforeRemove(treeId, treeNode) {
            
            zTree.selectNode(treeNode); //选中指定节点,单选,无返回值
            return confirm("确认删除 节点 -- " + treeNode.name + " 吗?");                        
        }
        function onRemove(event,treeId, treeNode){
            urlStrOption='/file/remove';
            var params="location="+treeNode.location;
            var message=zTreeOption(urlStrOption,params);
            if(message==="success"){
                //var zTree = $.fn.zTree.getZTreeObj("treeDemo");
                   //zTree.addNodes(treeNode, {id:treeNode.id, pId:treeNode.pId, name:treeNode.name, location:treeNode.location});
                alert("删除成功");
            }else{
                alert("删除失败");            
            }        
        }
        
        function beforeRename(treeId, treeNode, newName) {
            oldName=treeNode.name;
            if (newName.length == 0) {
                alert("节点名称不能为空.");
                return false;
            }
            return true;
        }
         function onRename(event, treeId, treeNode) {
             if(treeNode.name!=oldName){
                 urlStrOption = '/file/rename';
                 var params = "location="+treeNode.location+"&newName="+treeNode.name+"&oldName="+oldName;
                 var message=zTreeOption(urlStrOption,params);
                 if(message==="success"){
                        alert("重命名成功");
                    }else{
                        alert("重命名失败");
                        treeNode.name=oldName;
                    }
             }
         }
        
        
        //下面是添加新建按钮
        function addHoverDom(treeId, treeNode) {
            if(!treeNode.isParent)
                return;
            var sObj = $("#" + treeNode.tId + "_span");
            
        
            if ($("#addBtn_"+treeNode.id).length>0) return;
            var addStr = "<span class='button add' id='addBtn_" + treeNode.id
            + "' title='新建' onfocus='this.blur();'></span>";
            sObj.after(addStr);
            var btn = $("#addBtn_"+treeNode.id);
            //下面是新增文件功能
            if (btn) btn.bind("click", function(){
            var newDirName=window.prompt("输入新文件夹的名字");
        
            var len=treeNode.children.length;
            var newChildId=treeNode.id+len;
            var location=treeNode.location+"/"+newDirName;
            var validLoc=location.replace(/(//)/g,"/");
            zTree.addNodes(treeNode, {id:newChildId, pId:treeNode.id, name:newDirName,location:validLoc,isParent:true});
            var addUrl="/file/addNode";
            var params={dirname:validLoc};
            var state=zTreeOption(addUrl,$.param(params));
            
            if(state=="success")
                alert("新建成功");
            else
                alert("新建失败");
            });
        };        
        
        function removeHoverDom(treeId, treeNode) {
            $("#addBtn_"+treeNode.id).unbind().remove(); //remove() 方法移除被选元素,包括所有文本和子节点
        };
        
        function zTreeOption(doUrl, backParams){
        var tempdata ;
        $.ajax({
        async: false,
        url: doUrl,
        type: 'post',
        dataType: 'text',
        data: backParams,
        success: function(data) {
           tempdata = data;
        }
        });
            return tempdata;
        }
        //下面是右键菜单的函数
        
        function OnRightClick(event, treeId, treeNode) {
            if (!treeNode && event.target.tagName.toLowerCase() != "button" && $(event.target).parents("a").length == 0) {
                zTree.cancelSelectedNode();
                //showRMenu("root", event.clientX, event.clientY);
            } else if (treeNode) {
                zTree.selectNode(treeNode);
                if(treeNode.isParent)
                    //showRMenu("Dirnode", event.clientX, event.clientY);
                    showRMenu("Dirnode",event.clientX,event.clientY);
                else{
                    //showRMenu("node", event.clientX, event.clientY);    
                    showRMenu("node",event.clientX,event.clientY);            
                    }
            }
        }

        function showRMenu(type, x, y) {
            $("#rMenu").show();
            if (type=="root") {
                $("#m_refresh").hide();
                $("#m_upload").hide();
                $("#m_download").hide();
            } else if(type=="Dirnode"){
                $("#m_refresh").show();
                $("#m_upload").show();
                $("#m_download").show();
            }else{
                $("#m_refresh").hide();
                $("#m_upload").hide();
                $("#m_download").show();
            }
            rMenu.css({"position":"fixed","top":y+"px", "left":x+"px", "visibility":"visible"});

            $("body").bind("mousedown", onBodyMouseDown);
        }
        function hideRMenu() {
            if (rMenu) rMenu.css({"visibility": "hidden"});
            $("body").unbind("mousedown", onBodyMouseDown);
        }
        function onBodyMouseDown(event){
            if (!(event.target.id == "rMenu" || $(event.target).parents("#rMenu").length>0)) {
                rMenu.css({"visibility" : "hidden"});
            }
        }
        function refreshTreeNode(){
            hideRMenu();
            var nodes = zTree.getSelectedNodes();
            zTree.reAsyncChildNodes(nodes[0],"refresh");
        }
        function uploadToTreeNode(){
            hideRMenu();
            var pathFrom=window.prompt("输入想要上传的文件目录或者文件名:");
            if(!pathFrom||pathFrom=="")
            {
                $("#log").html($("#log").html()+"请先输入本地上传文件路径(目录路径)!<br>");
                return;
            }
            var nodes=zTree.getSelectedNodes();
            if(nodes.length==0)
            {
                $("#log").html($("#log").html()+"请选择上传目的地址!<br>");
                return;
            }
            var pathTo=nodes[0].location;
            var isDir=nodes[0].isParent;
            if(isDir&&pathTo){
            $("#log").html("已准备就绪...<br>源路径:"+pathFrom+"<br>目的路径:"+pathTo+"<br>开始上传...<br>");
            
            uploadFile(pathFrom, pathTo);
            }
        }
        function uploadFile(pathFrom, pathTo){
            $.post("/file/upload",{pathFrom:pathFrom,pathTo:pathTo},
                    function(data,textStatus){
                    data=JSON.parse(data);
                    if(data.isSuccess=="true")
                        $("#log").html($("#log").html()+"上传完毕!<br>");
                    else{
                         $("#log").html($("#log").html()+"上传失败!<br>"+data.msg);
                        
                        }                
                    });
        }
        function downloadFromTreeNode(){
            hideRMenu();
            var pathTo=window.prompt("输入本地目的文件夹或者文件名:");
            if(!pathTo||pathTo=="")
            {
                $("#log").html("请先输入本地目的文件路径(目录路径)!");
                return;
            }
            var nodes=zTree.getSelectedNodes();
            if(nodes.length==0)
            {
                $("#log").html("请先选择下载目的文件!");
                return;
            }
            var pathFrom=nodes[0].location;
            if(pathFrom){
            $("#log").html("已准备就绪...<br>源路径:"+pathFrom+"<br>目的路径:"+pathTo+"<br>开始下载...<br>");
            
            downloadFile(pathFrom, pathTo);    
            }
        }
        function downloadFile(pathFrom, pathTo){
            $.post("/file/download",{pathFrom:pathFrom,pathTo:pathTo},
            function(data,textStatus){
                if(data=="success")
                    $("#log").html($("#log").html()+"下载完毕!<br>");
                else
                        $("#log").html($("#log").html()+"下载失败!<br>");    
            });    
        }
        
        var zTree, rMenu;
        $(document).ready(function(){
            $.fn.zTree.init($("#treeDemo"), setting);
            zTree = $.fn.zTree.getZTreeObj("treeDemo");
            rMenu = $("#rMenu");
            
        });

    </SCRIPT>

    
    
</HEAD>

<BODY>
    <div class="row clearfix">
    <div class="col-md-12">
    <div>
        <ul class="breadcrumb">
            <li><a href="#">系统功能</a> <span class="divider"></span></li>
            <li><a href="#">任务管理</a> <span class="divider"></span></li>
            <li class="active">HDFS文件管理</li>
        </ul>
    </div>
    
    
<div class="content-box-small box-with-header">
     <div class="alert-head alert-info"><strong>文件系统</strong></div>
     <div class="file-system">
         <div id="treeDemo" class="ztree" ></div>
     </div>
</div>    
    
<div class="content-box-small box-with-header">
    <div class="alert-head alert-info"><strong>文件修改记录</strong></div>
    <div class="modify-info col-lg box-with-header">
        <div id="log"></div>
    </div>

</div>
</div>
</div>
<div  id="rMenu" class="list-group">
        <a id="m_refresh" class="list-group-item" href="#" onclick="refreshTreeNode();">刷新</a>
        <a id="m_upload" class="list-group-item" href="#" onclick="uploadToTreeNode();">上传</a>
        <a id="m_download" class="list-group-item" href="#" onclick="downloadFromTreeNode(true);">下载</a>
    
</div>    
    

</BODY>
</HTML>

 显示申请用户界面-apply--动态显示table

  1 <!DOCTYPE html>
  2 <html lang="zh-cn">
  3 <head>
  4     <meta charset="utf-8">
  5     <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6     <meta name="robots" content="noindex,nofollow">
  7     <meta name="description" content="Description">
  8     <meta name="keywords" content="keyword, keyword, keyword">
  9     <title><?php echo $this->get_var('title')?></title>
 10 
 11     <link href="/css/bootstrap.css" rel="stylesheet">
 12     <link href="/css/style.css" rel="stylesheet">
 13     <script src="/js/jquery.js"></script>
 14     <script src="/js/bootstrap.js"></script>
 15     <script src="/plugins/layer/layer.min.js"></script>
 16     
 17     <script type="text/javascript">
 18 
 19     var agreedUser = new Array();
 20 
 21 function agreeApply(){
 22     agreedUser=[];
 23     
 24     $('input:checkbox').each(function() {
 25             if($(this).prop('checked')){
 26                 //alert($(this).attr('value'));
 27                 agreedUser.push($(this).attr('value'));
 28         }
 29     });
 30 
 31     //提交给后台,添加新用户
 32     $.post("/user/agreeUserApply",   
 33             {names:agreedUser},
 34             function (data){
 35                 $.layer({
 36                     title: false,
 37                     time: 2,
 38                     shade: [0],
 39                     closeBtn: false,
 40                     dialog: {
 41                         type: 1,
 42                          msg:'操作成功'
 43                     },
 44                     end: function(){
 45                         $("#tbody").empty();
 46                         $.post("/user/applyUserInfo",    //若是管理员则获取apply的个数
 47                             function (data){
 48                                 //alert(data);
 49                                  var obj = eval ("(" + data + ")"); 
 50     
 51                                  for(var i=0; i<obj.length; i++) { 
 52                          //            alert(obj[i].name+" " + obj[i].role) 
 53                                     var check="<td><input type='checkbox' name='"+obj[i].name+"' id='user-apply' value='"+obj[i].name+"'></td>";
 54                                     var name="<td>"+obj[i].name+"</td>";
 55                                     var role="<td>"+obj[i].role+"</td>";
 56                                     var email="<td>"+obj[i].email+"</td>";
 57                                     var time="<td>"+obj[i].comment+"</td>";
 58                                     var user="<tr>"+check+name+role+email+time+"</tr>";
 59                                     $("#tbody").append(user);
 60                                  } 
 61                             },
 62                             "json");
 63                     }
 64                 });
 65              },
 66             "json");
 67  
 68 }
 69 
 70 
 71 
 72     function refuseApply(){
 73         refusedUser=[];
 74         
 75         $('input:checkbox').each(function() {
 76             if($(this).prop('checked')){
 77                 //refusedUser.push($(this).attr('value'));
 78                 refusedUser.push($(this).attr('value'));
 79             }
 80         });
 81         //alert(refusedUser);
 82         $.post("/user/refuseUserApply",   
 83                 {names:refusedUser},
 84                 function (data){
 85                     $.layer({
 86                         title: false,
 87                         time: 2,
 88                         shade: [0],
 89                         closeBtn: false,
 90                         dialog: {
 91                             type: 1,
 92                              msg:'操作成功'
 93                         },
 94                         end: function(){
 95                             $("#tbody").empty();
 96                             $.post("/user/applyUserInfo",    //若是管理员则获取apply的个数
 97                                 function (data){
 98                                     //alert(data);
 99                                      var obj = eval ("(" + data + ")"); 
100         
101                                      for(var i=0; i<obj.length; i++) { 
102                              //            alert(obj[i].name+" " + obj[i].role) 
103                                         var check="<td><input type='checkbox' name='"+obj[i].name+"' id='user-apply' value='"+obj[i].name+"'></td>";
104                                         var name="<td>"+obj[i].name+"</td>";
105                                         var role="<td>"+obj[i].role+"</td>";
106                                         var email="<td>"+obj[i].email+"</td>";
107                                         var time="<td>"+obj[i].comment+"</td>";
108                                         var user="<tr>"+check+name+role+email+time+"</tr>";
109                                         $("#tbody").append(user);
110                                      } 
111                                 },
112                                 "json");
113                         }
114                     });
115                 },
116         "json");
117     }
118 
119 
120     function selectOption(){
121         var test = document.getElementById("user-handle").checked;
122         
123         if(test){
124             $('input:checkbox').each(function() {
125                 $(this).prop('checked', true);
126             //    alert("stat "+$(this).prop('checked'));
127             });
128         }else{
129             $('input:checkbox').each(function() {
130                 $(this).prop('checked', false);
131             //    alert("stat "+$(this).prop('checked'));
132             });
133         }
134     }
135     
136     $(document).ready(function() {
137         
138         $.post("/user/applyUserInfo",    //若是管理员则获取apply的个数
139                 function (data){
140                     //alert(data);
141                      var obj = eval ("(" + data + ")"); 
142 
143                      for(var i=0; i<obj.length; i++) { 
144              //            alert(obj[i].name+" " + obj[i].role) 
145                         var check="<td><input type='checkbox' name='"+obj[i].name+"' id='user-apply' value='"+obj[i].name+"'></td>";
146                         var name="<td>"+obj[i].name+"</td>";
147                         var role="<td>"+obj[i].role+"</td>";
148                         var email="<td>"+obj[i].email+"</td>";
149                         var time="<td>"+obj[i].comment+"</td>";
150                         var user="<tr>"+check+name+role+email+time+"</tr>";
151                         $("#tbody").append(user);
152                      } 
153                 },
154                 "json");
155     });
156 
157 
158     </script>
159     
160 <body>
161 
162 <div id="subContent">
163     <div class="row col-md-12">
164     <div>
165         <ul class="breadcrumb">
166             <li><a href="#">系统功能</a> <span class="divider"></span></li>
167             <li><a href="#">任务管理</a> <span class="divider"></span></li>
168             <li class="active">HDFS文件管理</li>
169         </ul>
170     </div>
171     
172     <div class="well center-block">
173         
174             <table class="table table-bordered table-striped">
175                 <thead>
176                     <tr>
177                         <th><input type="checkbox" name="selectAll" id='user-handle' onClick="selectOption()"></th>
178                         <th>用户名</th>
179                         <th>申请角色</th>
180                         <th>邮箱</th>
181                         <th>备注</th>
182                     </tr>
183                     
184                 </thead>
185                 <tbody id="tbody">
186 
187                 </tbody>
188             </table>
189             
190             <div style="height:35px;">
191                     <span id="apply-handle" class="pull-right">
192                     <button class="btn btn-primary" type="button" onClick="agreeApply()"><i class="icon-random icon-white"></i> 同意申请</button>
193                     <button class="btn btn-danger" type="button" onClick="refuseApply()"><i class="icon-lock icon-white"></i> 拒绝申请</button>
194                     </span>
195             
196             </div>
197         
198     </div>
199     </div>
200 </div>
201 </body>
202 </html>

 显示结果界面run

<!DOCTYPE html>
<html lang="zh-cn">
<head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta name="robots" content="noindex,nofollow">
    <meta name="description" content="Description">
    <meta name="keywords" content="keyword, keyword, keyword">
    <title>互联网离线学习系统</title>

    <link href="/css/bootstrap.css" rel="stylesheet" id="bootstrap-css">
    <link href="/css/style.css" rel="stylesheet">
    <script src="/js/jquery.js"></script>
    <script src="/js/bootstrap.js"></script>
    
    <script src="/plugins/Highcharts/js/highcharts.js"></script>
    <script src="/plugins/Highcharts/js/modules/exporting.js"></script>
    <script type="text/javascript">
    
    function charts(container, name, number,title) {
        $(container).highcharts({
            chart: {
                type: 'column',
             //   margin: [ 50, 50, 100, 80]
            },
            title: {
                text: title
            },
            xAxis: {
                categories: name,
                labels: {
                    align: 'right',
                    style: {
                        fontSize: '13px',
                        fontFamily: 'Verdana, sans-serif'
                    }
                }
            },
            yAxis: {
                min: 0,
                title: {
                    text: '条'
                }
            },
            legend: {
                enabled: false
            },
            tooltip: {
                formatter: function() {
                    return '<b>'+ this.x +'</b><br>'+
                        title +":"+ Highcharts.numberFormat(this.y, 1) +
                        ' 条';
                }
            },
            series: [{
                name: 'The websites',
                data: number,
                dataLabels: {
                    enabled: true,
                    rotation: -90,
                    color: '#FFFFFF',
                    align: 'right',
                    x: 4,
                    y: 10,
                    style: {
                        fontSize: '11px',
                        fontFamily: 'Verdana, sans-serif'
                    }
                }
            }]
        });
    }

    function zTreeOption(doUrl, backParams){
        var tempdata=false;
        $.ajax({
        async: false,
        url: doUrl,
        type: 'post',
        dataType: 'text',
        data: backParams,
        success: function(data) {
           tempdata = data;
        }
        });
        return tempdata;
    }

    function showSafeChart(){
        var url = "/detection/safeInfo";
        var message=zTreeOption(url); 
        var data = eval("(" + message + ")"); 
        
        var name=data.name;
        var number=data.number;
        var total = number[0] + number[1];

        $("#total").text(total);
        $("#safe").text(number[0]);
        $("#unsafe").text(number[1]);
        
        var chart1="#chart1";        
        charts(chart1, name, number, "检测结果");
    }

    function showUrlChart(){
        var url = "/detection/urlInfo";
        var message=zTreeOption(url); 

        var data = eval("(" + message + ")"); 
         
        var name=data.name;
        var number=data.number;
        var chart2="#chart2";

        var urlList = ["url1","url2","url3","url4","url5","url6","url7","url8","url9","url10"];


         for(var i=0; i<urlList.length; i++) { 
            var id="<td>"+urlList[i]+"</td>";
            var num="<td>"+number[i]+"</td>";
            var url="<td>"+name[i]+"</td>";
            var info="<tr>"+id+num+url+"</tr>";
            $("#urlBody").append(info);
         } 
        
        charts(chart2, urlList, number, "恶意网址");
    }
    
    function showResult(){
        $("#logContent").hide();
        $("#result").show();
        $("#safeInfo").show();

        showSafeChart();
    }

    function showDetails(){
        $("#safeInfo").hide();
        $("#urlInfo").show();
        showUrlChart();
    }
    
    $(document).ready(function(){

    //    $("#checkBtn").hide();
        $("#safeInfo").hide();
        $("#urlInfo").hide();
        $("#result").hide();
        
        //$("form#startdo").submit();
        /*websocket interface client*/
        var ws_proto = "<?php echo Loader::loadConfigs('system.conf','ws_proto');?>";
        var ws_hostaddr = "<?php $ws_host = Loader::loadConfigs('system.conf','ws_host');echo gethostbyname($ws_host);?>";
        var ws_port ="<?php echo Loader::loadConfigs('system.conf','ws_port');?>";
        var wsUri = ws_proto+ws_hostaddr+":"+ws_port;
        websocket = new WebSocket(wsUri);
        websocket.onopen = function(ev){
            $("#logContent>.panel-body").append("<p>submit task request!connected!<p>");
        };
        websocket.onmessage = function(ev){
            //alert(ev.data);
            //var test = prompt("nihaoma?");
            var msg = JSON.parse(ev.data);
            if(msg['status']=='connected'){
                websocket.send('start');
                }else if(msg['status']=='finished'){
                    $('#checkBtn').show();
                    }
            $('#logContent>.panel-body').append(msg['responseText']+'<br>');
        };
        websocket.onerror = function(ev){
            $('#logContent>.panel-body').append('Error occurred!-'+ev.data+'<br>');
        };
        websocket.onclosed = function(ev){
            $("#logContent>.panel-body").append('Connection closed!-'+ev.data+'<br>');
        };
        //for test
        //$('#checkBtn').show();

        
        
    });
    //detection/detect  http://localhost:50070
    </script>
</head>
<body>
<div>
<!--  
    <div>    
        <form id="startdo" name="startdo" action="/detection/detect" method="post"></form>
    </div>
-->
    <div class="row col-md-12">
    <div>
        <ul class="breadcrumb">
            <li><a href="#">系统功能</a> <span class="divider"></span></li>
            <li><a href="#">任务管理</a> <span class="divider"></span></li>
            <li class="active">新建任务</li>
        </ul>
    </div>
    <div id="logContent" class="panel panel-default">
          <div class="panel-heading">
            <h3 class="panel-title">检测日志信息</h3>
          </div>
          <div class="panel-body">
                
          </div>
          <input type="button" class="btn btn-success pull-right" value="查看结果" id="checkBtn" onClick="showResult()"></input>
    </div>    
      
      <div>
                <div id ="result" class="alert alert-info">
                  <strong>检测结果</strong>
              </div>

          <div id="safeInfo">    
              <table class="table table-bordered table-striped">

                <thead>
                    <th>检测数据总数(条)</th>                    
                    <th>安全数据数目(条)</th>    
                    <th>可疑数据数目(条)</th>    
                    <th>恶意URL排名</th>
                </thead>
                <tbody id="tbody">
                    <tr>
                        <td id="total"></td>
                        <td id="safe"></td>
                        <td id="unsafe"></td>
                        <td> <a href="#" onClick="showDetails()">点击查看详情</a></td>
                    </tr>
                </tbody>
            
              <div class="col-md-12">            
                  <table width="70%" height="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr>
                    <td width="100%" height="400px"><div id="chart1" style="height:400px; 100%; float:center;text-align:center;">Chart1</div></td>
                    </tr>

                </table>
            </div>
    </div>
    
    <div id="urlInfo">
        <table id = "urlTable" class="table table-bordered table-striped">
            <thead>
                <th>URL标号</th>                    
                <th>发送可疑数据数目</th>    
                <th>URL全名</th>    
            </thead>
            <tbody id="urlBody">
            </tbody>
        </table>
        
              <div class="col-md-12">            
                  <table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">
                    <tr><td width="100%" height="400px"><div id="chart2" style="height:400px; 100%; float:center;text-algin:center;">chart2</div></td>
                    </tr>
                </table>
            </div>
    </div>
    
    </div>        
</div>
</body>
</html>
原文地址:https://www.cnblogs.com/hemi/p/4019984.html