⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 editentity.jsp

📁 国外的一套开源CRM
💻 JSP
📖 第 1 页 / 共 2 页
字号:
<%@page contentType="text/html"%>
<%--
 *  Copyright (c) 2001 The Open For Business Project and respected authors.
 *
 *  Permission is hereby granted, free of charge, to any person obtaining a 
 *  copy of this software and associated documentation files (the "Software"), 
 *  to deal in the Software without restriction, including without limitation 
 *  the rights to use, copy, modify, merge, publish, distribute, sublicense, 
 *  and/or sell copies of the Software, and to permit persons to whom the 
 *  Software is furnished to do so, subject to the following conditions:
 *
 *  The above copyright notice and this permission notice shall be included 
 *  in all copies or substantial portions of the Software.
 *
 *  THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS 
 *  OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF 
 *  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. 
 *  IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY 
 *  CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT 
 *  OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR 
 *  THE USE OR OTHER DEALINGS IN THE SOFTWARE. 
 *
 * @author Andy Zeneski (jaz@ofbiz.org)
 * @author David E. Jones (jonesde@ofbiz.org)
 * @version 1.0
--%>

<%@ page import="java.util.*" %>
<%@ page import="org.ofbiz.base.util.*, org.ofbiz.base.config.*" %>
<%@ page import="org.ofbiz.entity.*" %>
<%@ page import="org.ofbiz.entity.model.*" %>
<%@ page import="org.ofbiz.entity.util.*" %>

<%@ taglib uri="ofbizTags" prefix="ofbiz" %>

<jsp:useBean id="security" type="org.ofbiz.security.Security" scope="request" />
<jsp:useBean id="delegator" type="org.ofbiz.entity.GenericDelegator" scope="request" />

<%
if (security.hasPermission("ENTITY_MAINT", session)) {
  String entityName = request.getParameter("entityName");
  ModelReader reader = delegator.getModelReader();
  String event = request.getParameter("event");
  ModelEntity entity = null;
  if (UtilValidate.isNotEmpty(entityName) && !"addEntity".equals(event)) entity = reader.getModelEntity(entityName);
  ModelViewEntity modelViewEntity = null;
  if (entity instanceof ModelViewEntity) modelViewEntity = (ModelViewEntity)entity;
  TreeSet entSet = new TreeSet(reader.getEntityNames());
  String errorMsg = "";
  ResourceHandler entityResourceHandler = delegator.getModelReader().getEntityResourceHandler(entityName);

  if ("addEntity".equals(event)) {
    if (entity == null) {
      entity = new ModelEntity();
      entity.setEntityName(request.getParameter("entityName"));
      entity.setTableName(ModelUtil.javaNameToDbName(entity.getEntityName()));
      reader.getEntityCache().put(entity.getEntityName(), entity);
      entityName = entity.getEntityName();
      
      String entityGroup = request.getParameter("entityGroup");
      delegator.getModelGroupReader().getGroupCache().put(entityName, entityGroup);
    }
  } else if ("updateEntity".equals(event)) {
    entity.setTableName(request.getParameter("tableName"));
    entity.setPackageName(request.getParameter("packageName"));
    entity.setDependentOn(request.getParameter("dependentOn"));
    entity.setTitle(request.getParameter("title"));
    entity.setDescription(request.getParameter("description"));
    entity.setCopyright(request.getParameter("copyright"));
    entity.setAuthor(request.getParameter("author"));
    entity.setVersion(request.getParameter("version"));

    String entityGroup = request.getParameter("entityGroup");
    delegator.getModelGroupReader().getGroupCache().put(entityName, entityGroup);

    delegator.getModelReader().addEntityToResourceHandler(entityName, request.getParameter("loaderName"), request.getParameter("location"));
    delegator.getModelReader().rebuildResourceHandlerEntities();
  } else if ("removeField".equals(event)) {
    String fieldName = request.getParameter("fieldName");
    entity.removeField(fieldName);
  } else if ("updateField".equals(event)) {
    String fieldName = request.getParameter("fieldName");
    String fieldType = request.getParameter("fieldType");
    String primaryKey = request.getParameter("primaryKey");
    ModelField field = entity.getField(fieldName);
    field.setType(fieldType);
    if (primaryKey != null) field.setIsPk(true);
    else field.setIsPk(false);
    entity.updatePkLists();
  } else if ("addField".equals(event)) {
    ModelField field = new ModelField();
    field.setName(request.getParameter("name"));
    field.setColName(ModelUtil.javaNameToDbName(field.getName()));
    field.setType(request.getParameter("fieldType"));
    entity.addField(field);
  } else if ("addRelation".equals(event)) {
    String relEntityName = request.getParameter("relEntityName");
    String type = request.getParameter("type");
    String title = request.getParameter("title");
    String fkName = request.getParameter("fkName");
    ModelRelation relation = new ModelRelation();

    ModelEntity relEntity = reader.getModelEntity(relEntityName);
    if (relEntity == null) {
        errorMsg = errorMsg + "<li> Related Entity \"" + relEntityName + "\" not found, not adding.";
    } else {
      relation.setRelEntityName(relEntityName);
      relation.setType(type);
      relation.setTitle(title);
      relation.setFkName(fkName);
      relation.setMainEntity(entity);
      entity.addRelation(relation);
      if ("one".equals(type) || "one-nofk".equals(type)) {
        for (int pk = 0; pk < relEntity.getPksSize(); pk++) {
          ModelField pkf = relEntity.getPk(pk);
          ModelKeyMap keyMap = new ModelKeyMap();
          keyMap.setFieldName(pkf.getName());
          keyMap.setRelFieldName(pkf.getName());
          relation.addKeyMap(keyMap);
        }
      }
    }
  } else if ("updateRelation".equals(event)) {
    int relNum = Integer.parseInt(request.getParameter("relNum"));
    String type = request.getParameter("type");
    String title = request.getParameter("title");
    String fkName = request.getParameter("fkName");

    ModelRelation relation = entity.getRelation(relNum);
    relation.setType(type);
    relation.setTitle(title);
    relation.setFkName(fkName);
  } else if ("removeRelation".equals(event)) {
    int relNum = Integer.parseInt(request.getParameter("relNum"));
    if (relNum < entity.getRelationsSize() && relNum >= 0) entity.removeRelation(relNum);
    else errorMsg = errorMsg + "<li> Relation number " + relNum + " is out of bounds.";
  } else if ("updateKeyMap".equals(event)) {
    int relNum = Integer.parseInt(request.getParameter("relNum"));
    int kmNum = Integer.parseInt(request.getParameter("kmNum"));
    String fieldName = request.getParameter("fieldName");
    String relFieldName = request.getParameter("relFieldName");
    
    ModelRelation relation = entity.getRelation(relNum);
    ModelEntity relEntity = reader.getModelEntity(relation.getRelEntityName());
    ModelKeyMap keyMap = relation.getKeyMap(kmNum);
    ModelField field = entity.getField(fieldName);
    ModelField relField = relEntity.getField(relFieldName);

    keyMap.setFieldName(field.getName());
    keyMap.setRelFieldName(relField.getName());
  } else if ("removeKeyMap".equals(event)) {
    int relNum = Integer.parseInt(request.getParameter("relNum"));
    int kmNum = Integer.parseInt(request.getParameter("kmNum"));

    ModelRelation relation = entity.getRelation(relNum);
    relation.removeKeyMap(kmNum);
  } else if ("addKeyMap".equals(event)) {
    int relNum = Integer.parseInt(request.getParameter("relNum"));

    ModelRelation relation = entity.getRelation(relNum);
    ModelKeyMap keyMap = new ModelKeyMap();
    relation.addKeyMap(keyMap);
  } else if ("addReverse".equals(event)) {
    int relNum = Integer.parseInt(request.getParameter("relNum"));

    ModelRelation relation = entity.getRelation(relNum);
    ModelEntity relatedEnt = reader.getModelEntity(relation.getRelEntityName());
    if (relatedEnt != null) {
      if (relatedEnt.getRelation(relation.getTitle() + entity.getEntityName()) == null) {
        ModelRelation newRel = new ModelRelation();
        relatedEnt.addRelation(newRel);

        newRel.setRelEntityName(entity.getEntityName());
        newRel.setTitle(relation.getTitle());
        if ("one".equals(relation.getType()) || "one-nofk".equals(relation.getType())) newRel.setType("many");
        else newRel.setType("one");

        for (int kmn = 0; kmn < relation.getKeyMapsSize(); kmn++) {
          ModelKeyMap curkm = relation.getKeyMap(kmn);
          ModelKeyMap newkm = new ModelKeyMap();
          newRel.addKeyMap(newkm);
          newkm.setFieldName(curkm.getRelFieldName());
          newkm.setRelFieldName(curkm.getFieldName());
        }

        newRel.setMainEntity(relatedEnt);
      } else {
        errorMsg = errorMsg + "<li> Related entity already has a relation with name " + relation.getTitle() + entity.getEntityName() + ", no reverse relation added.";
      }
    } else {
      errorMsg = errorMsg + "<li> Could not find related entity " + relation.getRelEntityName() + ", no reverse relation added.";
    }
  } else if ("addMemberEntity".equals(event)) {
    String alias = request.getParameter("alias");
    String aliasedEntityName = request.getParameter("aliasedEntityName");

    if (UtilValidate.isEmpty(alias) || UtilValidate.isEmpty(alias)) {
      errorMsg = errorMsg + "<li> You must specify an Entity Alias and an Entity Name for addMemberEntity.";
    }

    if (modelViewEntity != null) {
      ModelViewEntity.ModelMemberEntity modelMemberEntity = new ModelViewEntity.ModelMemberEntity(alias, aliasedEntityName);
      modelViewEntity.addMemberModelMemberEntity(modelMemberEntity);
    } else {
      errorMsg = errorMsg + "<li> Cannot run addMemberEntity on a non view-entity.";
    }
  } else if ("removeMemberEntity".equals(event)) {
    String alias = request.getParameter("alias");
    if (modelViewEntity != null) {
      modelViewEntity.removeMemberModelMemberEntity(alias);
    } else {
      errorMsg = errorMsg + "<li> Cannot run removeMemberEntity on a non view-entity.";
    }
  } else if (event != null) {
    errorMsg = errorMsg + "<li> The operation specified is not valid: [" + event + "]";
  }

  Collection typesCol = delegator.getEntityFieldTypeNames(entity);
  TreeSet types = null;
  if (typesCol != null) types = new TreeSet(typesCol);
%>

<style>
A.listtext {font-family: Helvetica,sans-serif; font-size: 10pt; font-weight: bold; text-decoration: none; color: blue;}
A.listtext:hover {color:red;}
</style>
<H3>Entity Editor</H3>

<%if (errorMsg.length() > 0) {%>
<span style='color: red;'>The following errors occurred:
<ul><%=errorMsg%></ul>
</span>
<br>
<%}%>

<FORM method=POST action='<ofbiz:url>/view/EditEntity</ofbiz:url>' style='margin: 0;'>
  <INPUT type=TEXT class='inputBox' size='30' name='entityName'>
  <INPUT type=SUBMIT value='Edit Specified Entity'>
</FORM>
<FORM method=POST action='<ofbiz:url>/view/EditEntity</ofbiz:url>' style='margin: 0;'>
  <SELECT name='entityName' class='selectBox'>
    <OPTION selected>&nbsp;</OPTION>
    <%Iterator entIter1 = entSet.iterator();%>
    <%while (entIter1.hasNext()) {%>
      <OPTION><%=(String)entIter1.next()%></OPTION>
    <%}%>
  </SELECT>
  <INPUT type=SUBMIT value='Edit Specified Entity'>
</FORM>
<hr>
<FORM method=POST action='<ofbiz:url>/view/EditEntity?event=addEntity</ofbiz:url>' style='margin: 0;'>
  Entity Name (Java style): <INPUT type=TEXT class='inputBox' size='60' name='entityName'><br>
  Entity Group: <INPUT type=TEXT size='60' class='inputBox' name='entityGroup' value='org.ofbiz'>
  <INPUT type=SUBMIT value='Create Entity'>
</FORM>
<hr>
<%if (entity == null) {%>
  <H4>Entity not found with name "<%=UtilFormatOut.checkNull(entityName)%>"</H4>
<%}else{%>

<BR>
<A href='<ofbiz:url>/view/EditEntity?entityName=<%=entityName%></ofbiz:url>'>Reload Current Entity: <%=entityName%></A><BR>

⌨️ 快捷键说明

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