コード例 #1
0
  public Order createOrderFromAssets(WebPageRequest inReq) {
    String catalogId = inReq.findValue("catalogid");
    MediaArchive archive = getMediaArchive(catalogId);
    String[] assetids = inReq.getRequestParameters("assetid");
    Order order =
        getOrderManager()
            .createNewOrder(inReq.findValue("applicationid"), catalogId, inReq.getUserName());

    for (int i = 0; i < assetids.length; i++) {
      String id = assetids[i];
      if (id.startsWith("multiedit:hits")) {
        HitTracker hits = (HitTracker) inReq.getSessionValue(id.substring("multiedit:".length()));
        if (hits != null) {
          for (Iterator iterator = hits.iterator(); iterator.hasNext(); ) {
            Data data = (Data) iterator.next();
            Asset asset = archive.getAssetBySourcePath(data.getSourcePath());
            getOrderManager().addItemToOrder(catalogId, order, asset, null);
          }
        }
      } else {
        Asset asset = archive.getAsset(id);
        getOrderManager().addItemToOrder(catalogId, order, asset, null);
      }
    }

    getOrderManager().saveOrder(catalogId, inReq.getUser(), order);
    inReq.putPageValue("order", order);

    return order;
  }
コード例 #2
0
  public Order createOrderFromData(WebPageRequest inReq) {
    String catalogid = inReq.findValue("catalogid");

    String hitssessionid = inReq.getRequestParameter("hitssessionid");
    String mergefield = inReq.getRequestParameter("mergefield");
    if (mergefield == null) {
      mergefield = "assetid";
    }
    HitTracker datalist = null;
    if (hitssessionid != null) {
      datalist = (HitTracker) inReq.getSessionValue(hitssessionid);
    }

    Searcher itemsearcher = getSearcherManager().getSearcher(catalogid, "orderitem");
    List orderitems = new ArrayList();

    if (datalist.getSelectedHitracker().size() > 0) {
      Map props = new HashMap();

      String applicationid = inReq.findValue("applicationid");
      Order order =
          (Order) getOrderManager().createNewOrder(applicationid, catalogid, inReq.getUserName());
      inReq.putPageValue("order", order);
      inReq.setRequestParameter("orderid", order.getId());

      for (Iterator iterator = datalist.getSelectedHitracker().iterator(); iterator.hasNext(); ) {
        Data hit = (Data) iterator.next();
        String targetid = hit.get(mergefield);
        Asset asset = getMediaArchive(catalogid).getAsset(targetid);
        getOrderManager().addItemToOrder(catalogid, order, asset, null);
      }
      if (order.get("expireson") == null) {
        String days = getMediaArchive(catalogid).getCatalogSettingValue("orderexpiresdays");
        if (days == null) {
          days = "30";
        }
        GregorianCalendar cal = new GregorianCalendar();
        cal.add(Calendar.DAY_OF_YEAR, Integer.parseInt(days));
        order.setProperty(
            "expireson", DateStorageUtil.getStorageUtil().formatForStorage(cal.getTime()));
      }

      getOrderManager().saveOrder(catalogid, inReq.getUser(), order);

      return order;
    } else {
      inReq.setCancelActions(true);
    }

    return null;
  }
コード例 #3
0
  /*
   * public Data placeOrder(WebPageRequest req) { String catalogid =
   * req.findValue("catalogid");
   *
   * Album album = getEnterMedia(req).getAlbumArchive().loadAlbum("4",
   * req.getUserName()); HitTracker assets = album.getAssets(catalogid, req);
   * if (assets.size() > 0) { Map props = new HashMap();
   *
   * String applicationid = req.findValue("applicationid"); Data order =
   * getOrderManager().placeOrder(applicationid, catalogid, req.getUser(),
   * assets, props); req.putPageValue("order", order);
   * req.setRequestParameter("orderid", order.getId()); List realassets = new
   * ArrayList(); // this is really bizarre. We're loading the assets into
   * memory // simply to have them turned into BaseData objects. // Need a
   * better way to remove stuff from an album. for (Iterator iterator =
   * assets.iterator(); iterator.hasNext();) { Data hit = (Data)
   * iterator.next(); Asset asset =
   * getMediaArchive(catalogid).getAsset(hit.getId()); if (asset != null) {
   * realassets.add(asset); } } album.removeAssets(realassets, req);
   *
   * // <property name="subject">Order Placed</property> // TODO: Move these
   * to generic fields String prefix = req.findValue("subjectprefix"); if
   * (prefix == null) { prefix = "Order received:"; } prefix = prefix + " " +
   * order.getId();
   *
   * String postfix = req.findValue("subjectpostfix"); if (postfix != null) {
   * prefix = prefix + " " + postfix; } req.putPageValue("subject", prefix);
   *
   * return order; } else { req.setCancelActions(true); }
   *
   * return null; }
   */
  public Data createNewOrder(WebPageRequest inReq) {
    String catalogid = inReq.findValue("catalogid");
    String applicationid = inReq.findValue("applicationid");

    Order order =
        (Order) getOrderManager().createNewOrder(applicationid, catalogid, inReq.getUserName());
    inReq.putPageValue("order", order);

    // OrderHistory history = getOrderManager().createNewHistory(catalogid, order, inReq.getUser(),
    // "newrecord");

    getOrderManager().saveOrder(catalogid, inReq.getUser(), order);
    inReq.setRequestParameter("orderid", order.getId());
    return order;
  }
コード例 #4
0
 public Boolean canViewAsset(WebPageRequest inReq) {
   //		String orderid = inReq.getRequestParameter("orderid");
   //		if (orderid == null)
   //		{
   //			return false;
   //		}
   Order order = loadOrder(inReq);
   if (order == null) {
     order = (Order) inReq.getSessionValue("vieworder");
   }
   if (order == null) {
     return false;
   }
   Asset asset = getAsset(inReq);
   if (asset == null) {
     log.info("Asset not found");
     return false;
   }
   String catalogid = inReq.findValue("catalogid");
   HitTracker assets = getOrderManager().findOrderItems(inReq, catalogid, order);
   int found = assets.findRow("assetid", asset.getId());
   if (found > -1 && !order.isExpired()) {
     return true;
   }
   return false;
 }
コード例 #5
0
 public Order saveOrder(WebPageRequest inReq, boolean saveitems) throws Exception {
   Order order = loadOrder(inReq);
   if (order != null) {
     String catalogid = inReq.findValue("catalogid");
     order = getOrderManager().createOrder(catalogid, inReq, saveitems);
     inReq.putPageValue("savedok", "true");
   }
   return order;
 }
コード例 #6
0
  public Order loadOrder(WebPageRequest inReq) {
    Order order = (Order) inReq.getPageValue("order");
    if (order != null) {
      return order;
    }

    String catalogid = inReq.findValue("catalogid");
    String orderid = inReq.findValue("orderid");
    if (orderid == null) {
      orderid = inReq.getRequestParameter("id");
    }
    if (orderid == null) {
      return null;
    }
    order = getOrderManager().loadOrder(catalogid, orderid);
    inReq.putPageValue("order", order);
    return order;
  }
コード例 #7
0
  public Order updateOrder(WebPageRequest inReq) throws Exception {
    Order order = loadOrder(inReq);
    String[] fields = inReq.getRequestParameters("field");
    String catalogid = inReq.findValue("catalogid");
    Searcher searcher = getSearcherManager().getSearcher(catalogid, "order");

    searcher.updateData(inReq, fields, order);
    searcher.saveData(order, inReq.getUser());
    return order;
  }
コード例 #8
0
 public Collection saveItems(WebPageRequest inReq) throws Exception {
   String[] fields = inReq.getRequestParameters("field");
   if (fields != null) {
     String[] items = inReq.getRequestParameters("itemid");
     String catalogid = inReq.findValue("catalogid");
     ArrayList toSave = getOrderManager().saveItems(catalogid, inReq, fields, items);
     return toSave;
   }
   return null;
 }
コード例 #9
0
 public Order createOrderWithItems(WebPageRequest inReq) {
   String orderid = inReq.findValue("orderid");
   if (orderid != null) {
     return loadOrder(inReq);
   }
   String[] assetids = inReq.getRequestParameters("assetid");
   if (assetids != null && assetids.length > 0 && assetids[0].length() > 0) {
     return createOrderFromAssets(inReq);
   }
   return createOrderFromSelections(inReq);
 }
コード例 #10
0
  public HitTracker findOrdersForUser(WebPageRequest req) {
    String catalogid = req.findValue("catalogid");
    User owner = (User) req.getPageValue("owner");
    if (owner == null) {
      owner = req.getUser();
    }
    HitTracker orders = getOrderManager().findOrdersForUser(catalogid, owner);
    req.putPageValue("orders", orders);
    req.putPageValue("searcher", getSearcherManager().getSearcher(catalogid, "order"));

    return orders;
  }
コード例 #11
0
  public Order placeOrderFromBasket(WebPageRequest inReq) {
    Order order = loadOrderBasket(inReq);
    boolean resetid = Boolean.parseBoolean(inReq.findValue("resetid"));
    String prefix = inReq.findValue("subjectprefix");
    if (prefix == null) {
      prefix = "Order received:";
    }
    prefix = prefix + " " + order.getId();

    String postfix = inReq.findValue("subjectpostfix");
    if (postfix != null) {
      prefix = prefix + " " + postfix;
    }
    inReq.putPageValue("subject", prefix);

    getOrderManager().placeOrder(inReq, getMediaArchive(inReq), order, resetid);

    inReq.removeSessionValue("orderbasket");
    inReq.putPageValue("order", order);
    return order;
  }
コード例 #12
0
  public Order loadOrderBasket(WebPageRequest inReq) {
    Order basket = null;
    try {
      MediaArchive archive = getMediaArchive(inReq);
      basket = (Order) inReq.getPageValue("orderbasket");

      if (basket == null) {
        String id = inReq.getUserName() + "_orderbasket";
        String appid = inReq.findValue("applicationid");
        Searcher searcher = getSearcherManager().getSearcher(archive.getCatalogId(), "order");
        basket = (Order) searcher.searchById(id);
        if (basket == null) {
          basket =
              getOrderManager().createNewOrder(appid, archive.getCatalogId(), inReq.getUserName());
          basket.setId(id);
          basket.setProperty("ordertype", "basket");
          getOrderManager().saveOrder(archive.getCatalogId(), inReq.getUser(), basket);
        }
        basket.setProperty("basket", "true");
        basket.setProperty("ordertype", "basket");

        inReq.putSessionValue("orderbasket", basket);
      }
      inReq.putPageValue("order", basket);

      HitTracker items =
          loadOrderManager(inReq).findOrderItems(inReq, archive.getCatalogId(), basket);
      inReq.putPageValue("orderitems", items);

      String check = inReq.findValue("clearmissing");
      if (Boolean.parseBoolean(check)) {
        // Make sure these have the same number of assets found
        getOrderManager().removeMissingAssets(inReq, archive, basket, items);
      }
    } catch (Throwable ex) {
      log.error(ex);
    }

    return basket;
  }
コード例 #13
0
  /**
   * Is this needed?
   *
   * @deprecated
   * @param inReq
   */
  public void createQuickOrder(WebPageRequest inReq) {

    MediaArchive archive = getMediaArchive(inReq);

    OrderManager manager = getOrderManager();
    String catalogid = inReq.findValue("catalogid");
    Searcher searcher = getSearcherManager().getSearcher(catalogid, "order");
    Searcher itemsearcher = getSearcherManager().getSearcher(catalogid, "orderitem");

    Order order = (Order) searcher.createNewData();
    order.setProperty("userid", inReq.getUserName());
    String quickpublishid = inReq.getRequestParameter("quickid");
    Data publishtemplate = archive.getData("quickpublish", quickpublishid);

    order.setProperty(
        "publishdestination",
        publishtemplate.get(
            "publishdestination")); // assume 0 for most orders, 0 can be told to use Aspera
    searcher.saveData(order, inReq.getUser());

    String hitssessionid = inReq.getRequestParameter("hitssessionid");
    HitTracker hits = (HitTracker) inReq.getSessionValue(hitssessionid);
    for (Iterator iterator = hits.getSelectedHitracker().iterator(); iterator.hasNext(); ) {
      Data hit = (Data) iterator.next();
      Data item = itemsearcher.createNewData();
      item.setProperty("presetid", publishtemplate.get("convertpreset"));
      item.setProperty("assetid", hit.getId());
      item.setProperty("orderid", order.getId());

      item.setId(itemsearcher.nextId());
      itemsearcher.saveData(item, inReq.getUser());
    }

    List assetids =
        manager.addConversionAndPublishRequest(
            inReq, order, archive, new HashMap(), inReq.getUser());
    // OrderHistory history =
    // getOrderManager().createNewHistory(archive.getCatalogId(), order,
    // inReq.getUser(), "pending");
    // history.setAssetIds(assetids);
    // manager.saveOrderWithHistory(archive.getCatalogId(), inReq.getUser(),
    // order, history);
    //		if (assetids.size() > 0)
    //		{
    //			order.setProperty("orderstatus", "ordered");
    //		}
    //		manager.saveOrder(archive.getCatalogId(), inReq.getUser(), order);
    inReq.putPageValue("order", order);
    inReq.putPageValue("data", order);

    log.info("Added conversion and publish requests for order id:" + order.getId());
  }
コード例 #14
0
  /* (non-Javadoc)
   * @see com.openedit.command.Command#load(com.anthonyeden.lib.config.Configuration)
   */
  public void configure(WebPageRequest inReq) {
    fieldLoginPath = inReq.findValue("login-path");

    Configuration element = inReq.getCurrentAction().getConfig();
    PageSettings settings = inReq.getPage().getPageSettings();
    for (Iterator iter = element.getChildren("exclude").iterator(); iter.hasNext(); ) {
      Configuration excludeElem = (Configuration) iter.next();
      String path = excludeElem.getValue();
      path = settings.replaceProperty(path);
      getExcludes().add(path);
    }
    String forbid = element.getAttribute("forbid");
    setForbid(Boolean.valueOf(forbid));
  }
コード例 #15
0
 public HitTracker findOrderHistory(WebPageRequest req) {
   Order order = loadOrder(req);
   if (order != null) {
     String catalogid = req.findValue("catalogid");
     String orderid = order.getId();
     if (orderid == null) {
       orderid = req.getRequestParameter("orderid");
     }
     HitTracker items = getOrderManager().findOrderHistory(catalogid, order);
     req.putPageValue("orderhistory", items);
     return items;
   }
   return null;
 }
コード例 #16
0
 public void filterOrderItems(WebPageRequest req) {
   ArrayList<String> list = new ArrayList<String>(); // add omitted orders to a list
   String publishtype = req.getRequestParameter("publishdestination.value");
   String catalogid = req.findValue("catalogid");
   HitTracker items = (HitTracker) req.getPageValue("orderitems");
   if (items == null) {
     Order order = loadOrder(req);
     if (order != null) {
       String orderid = order.getId();
       if (orderid == null) {
         orderid = req.getRequestParameter("orderid");
       }
       items = getOrderManager().findOrderItems(req, catalogid, order);
     }
   }
   if (items != null) {
     // get searchers
     Searcher publishdestsearcher =
         getMediaArchive(req).getSearcherManager().getSearcher(catalogid, "publishdestination");
     Data publisher = (Data) publishdestsearcher.searchById(publishtype);
     String publishername = publisher.getName();
     Searcher convertpresetsearcher =
         getMediaArchive(req).getSearcherManager().getSearcher(catalogid, "convertpreset");
     // see if convertpreset has the appropriate field
     String publishtofield = "publishto" + publishername.replace(" ", "").toLowerCase();
     if (convertpresetsearcher.getDetail(publishtofield) != null) // field is present
     {
       for (int i = 0; i < items.size(); i++) {
         Data data = items.get(i);
         Asset asset = getMediaArchive(req).getAsset(data.get("assetid"));
         String fileformat = asset.get("fileformat");
         String rendertype = getMediaArchive(req).getMediaRenderType(fileformat);
         // build query
         SearchQuery presetquery = convertpresetsearcher.createSearchQuery();
         presetquery.append(publishtofield, "true").append("inputtype", rendertype);
         // execute query
         HitTracker hits = convertpresetsearcher.search(presetquery);
         if (hits.size() > 0) continue;
         list.add(asset.getId());
       }
     }
   }
   req.putPageValue("invaliditems", list); // process this in step2
 }
コード例 #17
0
  public void createConversionAndPublishRequest(WebPageRequest inReq) {

    // Order and item should be created from previous step.
    // now we get the items and update the destination information
    Order order = loadOrder(inReq);

    OrderManager manager = getOrderManager();
    String catalogid = inReq.findValue("catalogid");
    Searcher searcher = getSearcherManager().getSearcher(catalogid, "order");
    if (order == null) {
      order = (Order) searcher.createNewData();
    }
    String[] fields = inReq.getRequestParameters("field");
    searcher.updateData(inReq, fields, order);

    MediaArchive archive = getMediaArchive(inReq);
    Map params = inReq.getParameterMap();
    if (order.get("publishdestination") == null) {
      // String publishdestination = inReq.findValue("publishdestination.value");
      // do something? default it to browser?
      order.setProperty(
          "publishdestination", "0"); // assume 0 for most orders, 0 can be told to use Aspera
    }
    List assetids =
        manager.addConversionAndPublishRequest(inReq, order, archive, params, inReq.getUser());
    // OrderHistory history =
    // getOrderManager().createNewHistory(archive.getCatalogId(), order,
    // inReq.getUser(), "pending");
    // history.setAssetIds(assetids);
    // manager.saveOrderWithHistory(archive.getCatalogId(), inReq.getUser(),
    // order, history);
    //		if (assetids.size() > 0)
    //		{
    //			order.setProperty("orderstatus", "ordered"); //what is pendig
    //		}
    //		manager.saveOrder(archive.getCatalogId(), inReq.getUser(), order);
    log.info("Added conversion and publish requests for order id:" + order.getId());
  }
コード例 #18
0
 public void removeItem(WebPageRequest inReq) throws Exception {
   String catalogid = inReq.findValue("catalogid");
   String itemid = inReq.getRequestParameter("id");
   getOrderManager().removeItem(catalogid, itemid);
 }
コード例 #19
0
  /*
  public void sendOrderEmail(WebPageRequest inReq)
  {
  	// just a basic email download
  	Order order = loadOrder(inReq);
  	MediaArchive archive = getMediaArchive(inReq);
  	String catalogid = archive.getCatalogId();
  	String[] emails = inReq.getRequestParameters("sharewithemail.value");
  	//String[] organizations = inReq.getRequestParameters("organization.value");
  	HitTracker orderItems = getOrderManager().findOrderItems(inReq, archive.getCatalogId(), order);
  	inReq.putPageValue("orderitems", orderItems);
  	inReq.putPageValue("order", order);

  	try
  	{

  		OrderHistory history = getOrderManager().createNewHistory(catalogid, order, inReq.getUser(), "created");
  		inReq.putPageValue("order", order);
  		TemplateWebEmail mailer = getPostMail().getTemplateWebEmail();
  		String templatepage = inReq.findValue("sharetemplate");
  		Page template = getPageManager().getPage(templatepage);
  		mailer.loadSettings(inReq.copy(template));
  		mailer.setMailTemplatePage(template);
  		String subject = mailer.getWebPageContext().findValue("subject");
  		if (subject == null)
  		{
  			subject = "Share notification";
  		}

  		mailer.setSubject(subject);
  		mailer.setRecipientsFromStrings(Arrays.asList(emails));
  		mailer.send();

  		getOrderManager().saveOrderWithHistory(catalogid, inReq.getUser(), order, history);

  	}
  	catch (Exception e)
  	{
  		throw new OpenEditException(e);
  	}

  }
  */
  public void deleteOrder(WebPageRequest inReq) throws Exception {
    Order order = loadOrder(inReq);
    String catalogid = inReq.findValue("catalogid");
    getOrderManager().delete(catalogid, order);
  }
コード例 #20
0
  public Order createOrderFromSelections(WebPageRequest inReq) {
    String catalogid = inReq.findValue("catalogid");

    String hitssessionid = inReq.getRequestParameter("hitssessionid");
    HitTracker assets = null;
    if (hitssessionid != null) {
      assets = (HitTracker) inReq.getSessionValue(hitssessionid);
    } else {
      assets = new ListHitTracker();
      String[] sourcepaths = inReq.getRequestParameters("sourcepath");
      if (sourcepaths == null) {
        log.error("No assets passed in");
        return null;
      }
      for (int i = 0; i < sourcepaths.length; i++) {
        Data hit = new BaseData();
        hit.setSourcePath(sourcepaths[i]);
        assets.add(hit);
        assets.addSelection(hit.getId());
      }
    }
    if (assets == null) {
      return null;
    }
    Searcher itemsearcher = getSearcherManager().getSearcher(catalogid, "orderitem");
    List orderitems = new ArrayList();

    if (assets.hasSelections()) {
      Map props = new HashMap();

      String applicationid = inReq.findValue("applicationid");
      Order order =
          (Order) getOrderManager().createNewOrder(applicationid, catalogid, inReq.getUserName());
      inReq.putPageValue("order", order);
      inReq.setRequestParameter("orderid", order.getId());

      for (Iterator iterator = assets.getSelectedHitracker().iterator(); iterator.hasNext(); ) {
        Data hit = (Data) iterator.next();
        Asset asset = getMediaArchive(catalogid).getAssetBySourcePath(hit.getSourcePath());
        if (asset != null) {
          getOrderManager().addItemToOrder(catalogid, order, asset, null);
        }
      }
      if (order.get("expireson") == null) {
        String days = getMediaArchive(catalogid).getCatalogSettingValue("orderexpiresdays");
        if (days == null) {
          days = "30";
        }
        GregorianCalendar cal = new GregorianCalendar();
        cal.add(Calendar.DAY_OF_YEAR, Integer.parseInt(days));
        order.setProperty(
            "expireson", DateStorageUtil.getStorageUtil().formatForStorage(cal.getTime()));
      }

      getOrderManager().saveOrder(catalogid, inReq.getUser(), order);

      return order;
    } else {
      inReq.setCancelActions(true);
    }

    return null;
  }
コード例 #21
0
  public HitTracker loadAssets(WebPageRequest inReq) {
    String catalogid = inReq.findValue("catalogid");
    Order order = loadOrder(inReq);

    return getOrderManager().findAssets(inReq, catalogid, order);
  }