views.js

来自「Hippo CMS是一个以信息为中心的开源内容管理系统。Hippo CMS目标是」· JavaScript 代码 · 共 2,427 行 · 第 1/5 页

JS
2,427
字号
    else return null;
}

  function setLastActive(viewId) {
    this._lastActive = viewId;
  }
}

//////////////////////////////////////////////////////////////////////////////
// Folder View class
//  (c) 2004 - abogaart@hippo.nl
//
// @extends View
// Description:   
//  Provides a folder tree
//////////////////////////////////////////////////////////////////////////////
function FolderView() {
  if ( Cfx.Class.IsDefined( FolderView) == false ) {
    Cfx.Class.New( FolderView, View );
    if( Cfx.Class.IsInitializing( FolderView, View )) {

      //events
      FolderView.Method(expandfolder); 
      FolderView.Method(collapsefolder); 
      FolderView.Method(openfolder);
      FolderView.Method(showfolder);
      FolderView.Method(proppatch);
      FolderView.Method(makeCollection);
      FolderView.Method(deleteCollection);
      FolderView.Method(moveUpDown);
      FolderView.Method(expandPath);
      FolderView.Method(getPerspectiveId);
        
      return;
    }
  }
  this.InitInstance();
  return this;
  
  function showfolder(params)
  {
    this.expandfolder(params);
  }
  
  function expandPath(params) {
    if (this.log.debugging()) {
      this.log.debug("expandPath: " + params);
    }
    //this.sm.lookup("framework.rc").doCall(this.config.appUrl, this, params);
    //this.resourceID = params;
    this.saveRPC(params);
  }
  function expandfolder(params) {
    if (this.log.debugging()) {
      this.log.debug("expandfolder");
    }
    if(this.timeoutPassed(0) || (this.resourceID!=null && params[0].val!=this.resourceID[0].val)) //only do rpc when time different big enough or params different
    {
      if (this.log.debugging()) {
        this.log.debug("expandfolder RPC!");
      }
      //this.sm.lookup("framework.rc").doCall(this.config.appUrl, this, params);
      //this.resourceID = params;
      this.saveRPC(params);
    }
  }
  function collapsefolder(params) {
    if (this.log.debugging()) {
      this.log.debug("collapsefolder");
    }
    if(this.timeoutPassed(1) || (this.resourceID!=null && params[0].val!=this.resourceID[0].val)) //only do rpc when time different big enough
    {
      if (this.log.debugging()) {
        this.log.debug("********** collapsefolder RPC!");
      }
      //this.sm.lookup("framework.rc").doCall(this.config.appUrl, this, params);    
      //this.resourceID = params;
      this.saveRPC(params);
    }
    else
    {
      if (this.log.debugging()) {
        this.log.debug("********** collapsefolder NO RPC!");
      }
    }
  }
  function openfolder(params) {
    if (this.log.debugging()) {
      this.log.debug("openfolder");
    }
    if(this.timeoutPassed(0) || (this.resourceID!=null && params[0].val!=this.resourceID[0].val)) //only do rpc when time different big enough
    {
      if (this.log.debugging()) {
        this.log.debug("********** openfolder RPC!");
      }
      //this.sm.lookup("framework.rc").doCall(this.config.appUrl, this, params);    
      //this.resourceID = params;
      this.saveRPC(params);
    }
    else
    {
      if (this.log.debugging()) {
        this.log.debug("********** openfolder NO RPC!");
      }
    }
  }

  function proppatch(params) {
    if(params[0].val){
      //this.sm.lookup("framework.rc").doCall(this.config.appUrl, this, this.resourceID);
      this.refresh();    
    }
    else {
      //alert(params[1].val);
    }
  }

  function makeCollection(params) {
    if(params[0].val){
      var currentPerspective = getPerspectiveId(params[2].val);
      var refreshFolder = "";
      if(params[2].val.charAt(params[2].val.length-1)=='/')
      {
      	 refreshFolder = params[2].val.substring(0,(params[2].val.length)-1);
      }
      else
      {
      	 refreshFolder = params[2].val;
      }
      var localparams = [{key:'url',val:params[2].val},
                         {key:'refresh',val:refreshFolder},
                         {key:'perspectiveId',val:currentPerspective},
                         {key:'currentPath',val:params[2].val}
                        ];
      this.saveRPC(localparams);
    }
    else {
      //alert(params[1].val);
    }
  }

  function deleteCollection(params) {
    if (params[0].val) 
    {
      // save url of parent folder of deleted folder
      var refreshUrl = "";
      for (var i = 0; i < params.length; i++)
      {
        if (params[i].key == "url")
        {
          refreshUrl = params[i].val;
        }
      }

      // set refresh parameter so tree generator refreshes node
      if (refreshUrl != "")
      {
        if (refreshUrl.substr(refreshUrl.length - 1) == "/")
        {
          refreshUrl = refreshUrl.substr(0, refreshUrl.length - 1);
        }
        var refreshIndex = this.resourceID.length;
        for (var i = 0; i < this.resourceID.length; i++)
        {
          if (this.resourceID[i].key == "refresh")
          {
            refreshIndex = i;
          }
        }
        this.resourceID[refreshIndex] = {key:"refresh",val:refreshUrl};
      }
    
      // refresh tree view
      this.refresh();
      
    }
    else {
      //alert(params[1].val);
    }
  }

  function moveUpDown(params) {
    if(params[0].val){
      this.refresh();
      //this.sm.lookup("framework.rc").doCall(this.config.appUrl, this, this.resourceID);    
    }
    else {
      //alert(params[1].val);
    }
  }
  
  function getPerspectiveId(url)
  {
  	var perspectiveId = "";
  	var folders = url.split("/");
  	  for (var i = 0; i < folders.length; i++)
    	{
     		if(i==1)
     		perspectiveId = "/" + folders[i];
    	}
     return perspectiveId;
  }
}

function DocsView() {
  if ( Cfx.Class.IsDefined( DocsView) == false ) {
    Cfx.Class.New( DocsView, View );
    if( Cfx.Class.IsInitializing( DocsView, View )) {
      DocsView.Method(openfolder);
      DocsView.Method(collapsefolder);
      DocsView.Method(showfolder);
      DocsView.Method(proppatch);
      DocsView.Method(makeCollection);
      DocsView.Method(newDocument);
      DocsView.Method(deleteResource);
      DocsView.Method(deleteCollection);
      DocsView.Method(moveUpDown);
      DocsView.Method(sortBy);
      DocsView.Method(saveDocument);
      DocsView.Method(importDocument);
      DocsView.Method(workflowAction);
      DocsView.Method(publishResource);
      DocsView.Method(publish);
      DocsView.Method(closeDocument);
      DocsView.Method(editDocument);
      DocsView.Method(showfiledetails);
      DocsView.Method(refresh);
      DocsView.Method(moveDocument);
      DocsView.Method(refreshOnSave);      
      DocsView.Method(copyDocument);      
      return;
    }
  }

  this.selectedResourceName = null;

  this.InitInstance();
  return this;
  
  // override View.refresh()
  function refresh() 
  {
    if (this.selectedResourceName != null)
    {
      var found = false;
      for (var i = 0; i < this.resourceID.length; i++)
      {
        if (this.resourceID[i].key == "selectedResourceName")
        {
          this.resourceID[i].val = this.selectedResourceName;
          found = true;
        }
      }
      if (!found)
      {
        this.resourceID[this.resourceID.length] = {key:'selectedResourceName',val:this.selectedResourceName};
      }
      this.resourceID[this.resourceID.length] = {key:'fireShowFileDetailsEvent',val:'no'};
    }
    this.doRPC(this.resourceID);
  }
  
  function showfolder(params)
  {
    this.openfolder(params);
  }
  
  function openfolder(params) 
  {
    if (this.log.debugging()) 
    {
      this.log.debug("openfolder");
    }
    if(this.timeoutPassed(0)) //only do rpc when time difference big enough
    {
      if (this.log.debugging()) 
      {
        this.log.debug("********** openfolder RPC!");
      }
      this.saveRPC(params);
    }
    else
    {
      if (this.log.debugging()) 
      {
        this.log.debug("********** openfolder NO RPC!");
      }
    }

  }
  
  function collapsefolder(params)
  {
    if(params[0].val)
    {
      this.doRPC(params);
    }
  }

  function proppatch(params) 
  {
    if(params[0].val)
    {
      this.refresh();
    }
    else {
      //alert(params[1].val);
    }
  }
  
  function makeCollection(params) 
  {
    if(params[0].val)
    {
      this.doRPC(params);
    }
    else 
    {
      //alert(params[1].val);
    }
  }

  function newDocument(params) 
  {
    if(params[0].val)
    {
      for (var t=0 ;t < params.length; t++)
      {
        if (params[t].key == "selectedResourceName")
        {
          this.selectedResourceName = params[t].val; // save name of selected resource 
        }
      }
      this.doRPC(params);
    }
    }

  function deleteResource(params) 
  {
    if (params[0].val) 
    {
      this.refresh();
    }
    else 
    {
      //alert(params[1].val);
    }
  }

  function deleteCollection(params) 
  {
    if (params[0].val) 
    {
      this.doRPC(params);
    }
    else 
    {
      //alert(params[1].val);
    }
  }

  function moveUpDown(params) 
  {
    if(params[0].val)
    {
      this.doRPC(params);
    }
    else 
    {
      alert(params[1].val);
    }
  }

  function sortBy(params) {
    if(params[0].val){
      if (this.log.debug) 
      {
        this.log.debug("sort doclisting (url: " + params[0].val + ", column: " + params[1].val + ", order: " + params[2].val + ")");
      }
      this.doRPC(params);
    }
    else 
    {
      if (this.log.debug) 
      {
        this.log.debug("sort doclisting failed");
      }
    }
  }

  function saveDocument(params) 
  {
    this.refresh();
  }

  function importDocument(params) 
  {
    if(params[0].val)
    {
      this.refresh();
    }
    else {
      //alert(params[1].val);
    }
  }

  function workflowAction(params) 
  {
    this.refresh();
  }

  function publishResource(params) 
  {
    this.refresh();
  }

  function publish(params) 
  {
    this.refresh();
  }
  
  function closeDocument(params)
  {
    if (params[0].val)
    {
      this.refresh();
}
    else
    {
      alert(params[1].val);
    }
  }

  function editDocument(params)
  {
    if (params[0].val)
    {
      this.refresh();
    }
  }
  
  function showfiledetails(params)
  {
    for (var t=0 ;t < params.length; t++)
    {
      if (params[t].key == "selectedResourceName")
      {
        this.selectedResourceName = params[t].val; // save name of selected resource 
      }
    }
  }
  
  function moveDocument(params)
  {
    this.refresh();
  }
  
  function refreshOnSave(params) 
  {    
    this.refresh();
  }  
  
  function copyDocument(params) {
    this.refresh();
  }
}


function DetailsView() {
  if ( Cfx.Class.IsDefined(DetailsView) == false ) {
    Cfx.Class.New( DetailsView, View );
    if( Cfx.Class.IsInitializing( DetailsView, View )) {
      DetailsView.Method(showfiledetails);
      DetailsView.Method(openfolder);      
      DetailsView.Method(proppatch);
      DetailsView.Method(deleteResource);
      DetailsView.Method(deleteCollection);
      DetailsView.Method(saveDocument);
     return;
    }
  }
  this.InitInstance();
  return this;
  
  function openfolder(params) {
    this.log.debug("openfolder");

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?