Example #1
0
    protected void Page_Load(object sender, EventArgs e)
    {
        DialogueMasterPage master = (DialogueMasterPage)this.Master;
        if (master.Exchange == null) return;
        contentTree.RelationId = AqlRelFilefolders.Relation.RelationId;

        List<FileLibrary> libs = WAFContext.Session.GetContents<FileLibrary>();
        if (libs.Count == 0) {
            FileLibrary newlib = WAFContext.Session.NewContent<FileLibrary>();
            newlib.UpdateChanges();
            newlib.Name = "Library";
            contentTree.RootKey = newlib.Key;
        } else {
            contentTree.RootKey = new UniqueList<FileLibrary>(libs).GetFirst().Key;
        }

        UniqueList<int> classIds = null;
        UniqueList<int> classIds2 = new UniqueList<int>();
        UniqueList<MemDefContentClass> contDefList;
        if (master.Exchange.DialogueParameters.ContainsKey("ClassIds")) {
            contDefList = new UniqueList<MemDefContentClass>();
            classIds = (UniqueList<int>)master.Exchange.DialogueParameters["ClassIds"];
            foreach (int id in classIds) {
                foreach (int id2 in WAFContext.Engine.Definition.ContentClass[id].AllDescendantsIncThis) {
                    if (!classIds2.Contains(id2)) {
                        classIds2.Add(id2);
                        contDefList.Add(WAFContext.Engine.Definition.ContentClass[id2]);
                    }
                }
            }
            classIds = classIds2;
        } else {
            contDefList = new UniqueList<MemDefContentClass>();
            foreach (MemDefContentClass classDef in WAFContext.Engine.Definition.ContentClass.Values) contDefList.Add(classDef);
        }

        if (!IsPostBack) {
            updateTypeList();
            txtSearch.Text = (string)master.Exchange.DialogueParameters["SearchString"];

            if (master.Exchange.DialogueParameters.ContainsKey("ViewMode")) {
                contentList.ViewMode = (ListViewOptions)master.Exchange.DialogueParameters["ViewMode"];
                chkThumbnails.Checked = contentList.ViewMode == ListViewOptions.Thumbnails;
            }

            //chkFilter.Checked = txtSearch.Text.Length > 0;
            chkTreeview_CheckedChanged(null, null);
            chkFilter_CheckedChanged(null, null);
            //foreach (MemDefRelation rel in WAFContext.Session.Definitions.Relation.Values) {
            //    ListItem item = new ListItem(rel.GetName(WAFContext.Session), rel.Id.ToString());
            //    lstTreeviewRelation.Items.Add(item);
            //}

        }
        if (contentList.ViewMode != ListViewOptions.List) {
            contentList.ViewMode = chkThumbnails.Checked ? ListViewOptions.Thumbnails : ListViewOptions.Details;
        }
        int nodeId = 0;
        if (int.TryParse(txtSearch.Text + "", out nodeId)) {
            if (WAFContext.Session.NodeExists(nodeId, true, true)) {
                UniqueList<CKeyNLRC> result = new UniqueList<CKeyNLRC>();
                result.Add(WAFContext.Session.GetContent(nodeId).Key);
                master.SendResult(result);
                Response.End();
            }
        }

        AqlQuery query = WAFContext.Session.CreateQuery();
        AqlAliasContentBase alias;
        int selectedFolderId = -1;
        if (chkTreeview.Checked) {
            AqlAliasFileFolder parent = new AqlAliasFileFolder();
            parent.AssignNoneAliasFields = false;
            alias = new AqlAliasContentFile();
            AqlAliasRelation relation = new AqlAliasRelation(parent, alias, AqlRelFolderFiles.Relation);
            query.From(relation);
            if (contentTree.GetSelectedCount() > 0) {
                selectedFolderId = new CKeyNLR(contentTree.GetSelectedValues().GetFirst()).NodeId;
            }
            query.Where(parent.NodeId == selectedFolderId);
        } else {
            alias = new AqlAliasContentBase(0);
            query.From(alias);
        }
        query.Select(alias);
        query.Select(alias.Name, "Name");
        query.Select(alias.ChangeDate, "ChangedDate");
        query.OrderBy(alias.Name);
        if (master.Exchange != null) {
            if (master.Exchange.DialogueParameters.ContainsKey("WhereExpression")) {
                AqlExpressionBoolean where = (AqlExpressionBoolean)master.Exchange.DialogueParameters["WhereExpression"];
                if (((object)where) != null) query.Where(where);
            }
        }
        int classId = 0;

        if (int.TryParse(ddlFilter.SelectedValue, out classId)) { // if selected
            //query.Where(AqlContent.ContentClassId == classId);
            query.Where(Aql.In(alias.ContentClassId, WAFContext.Session.Definitions.ContentClass[classId].AllDescendantsIncThis));
        } else { // if not, return all in list or omit if no class is specified to dialogue
            if (classIds != null) query.Where(Aql.In(alias.ContentClassId, classIds));
        }
        if (chkHideOtherLangs.Checked) {
            query.Where(alias.IsDerived == false);
        }
        if (txtSearch.Text.Length > 0) {
            if (int.TryParse(txtSearch.Text, out nodeId)) {
                query.Where(alias.NodeId == nodeId);
            } else {
                query.Where(Aql.Like(alias.Name, "*" + txtSearch.Text + "*"));
            }
        }
        contentList.Query = (query);

        if (!IsPostBack) {
            query.RetrieveTotalCount = true;
            query.PageSize = contentList.PageSize;
        }

        btnNewFolder.AddInputParameters("ChooseHierarchyPosition", false);
        btnNewFolder.AddInputParameters("EditAfterCreate", true);
        btnNewFolder.AddInputParameters("EditInNewWindow", true);
        btnNewFolder.AddInputParameters("ClassIds", WAFContext.Engine.Definition.ContentClass[FileFolder.ContentClassId].AllDescendantsIncThis.ToList());

        btnNewContent.AddInputParameters("ChooseHierarchyPosition", false);
        btnNewContent.AddInputParameters("EditAfterCreate", true);
        btnNewContent.AddInputParameters("EditInNewWindow", true);
        btnNewContent.AddInputParameters("ClassIds", classIds);

        bool fileUpload = (bool)master.Exchange.DialogueParameters["FileUpload"];
        if (fileUpload) {
            btnUpload.AddInputParameters("ParentFolderNodeId", selectedFolderId);
            btnUpload.AddInputParameters("FileUploadType", FileUploadType.ContentFileUpload);
            btnUpload.AddInputParameters("Multiple", true);
            btnUploadArchive.WorkflowType = typeof(WAF.Engine.Workflow.FileUpload);
            btnUploadArchive.AddInputParameters("ParentFolderNodeId", selectedFolderId);
            btnUploadArchive.AddInputParameters("FileUploadType", FileUploadType.ContentFileUploadZipped);
            btnUploadArchive.AddInputParameters("Multiple", false);
        }

        master.AddDialogueButton(btnSelect);
        // contentTree.PersistenceKey = "Tree";
    }
 void ensureListDataBind()
 {
     if (hasBoundList) return;
     hasBoundList = true;
     AqlQuery q = WAFContext.Session.CreateQuery();
     AqlAliasContentFile aliasFile = new AqlAliasContentFile();
     if (chkShowFolders.Checked) {
         AqlAliasFileFolder aliasFolder = new AqlAliasFileFolder();
         AqlAliasRelFolderFiles filesInFolder = new AqlAliasRelFolderFiles(aliasFolder, aliasFile);
         q.From(filesInFolder);
         q.Where(aliasFolder.NodeId == treeFolders.GetSelectedKeys().GetFirst().NodeId);
     } else {
         q.From(aliasFile);
     }
     if (lstFilterType.SelectedIndex > 0) {
         MemDefContentClass classDef = WAFContext.Session.Definitions.ContentClass[int.Parse(lstFilterType.SelectedValue)];
         q.Where(Aql.In(aliasFile.ContentClassId, classDef.AllDescendantsIncThis));
     }
     if (txtNameSearch.Text.Trim().Length > 0) {
         q.Where(Aql.Like(aliasFile.Name, "*" + txtNameSearch.Text.Trim() + "*"));
     }
     q.Select(aliasFile);
     q.RetrieveTotalCount = true;
     lstFiles.Query = q;
     lstFiles.DataBind();
 }