Beispiel #1
0
    private TreeNode CreateZipNode(EkJobDS.LocalizationJobFileRow data)
    {
        TreeNode node = new TreeNode();
        StringBuilder sb = new StringBuilder();
        string strUrl = null;
        string strName = null;
        string strFileExt = null;

        strFileExt = System.IO.Path.GetExtension(data.FileName).ToLower();
        strUrl = Ektron.Cms.Common.EkFunctions.QualifyURL(this.localizationApi.GetLocalizationUrl(), data.FileUrl);
        node.Value = "zip" + data.FileID;
        node.PopulateOnDemand = false;
        node.SelectAction = TreeNodeSelectAction.None;

        switch (strFileExt)
        {
            case ".zip":
                node.PopulateOnDemand = true;
                node.SelectAction = TreeNodeSelectAction.Expand;
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/zip.png";
                node.ImageToolTip = GetMessage("alt zip file");
                break;
            case ".xlf":
            case ".xml":
                // .xml for Trados
                if (data.ErrorMessage != null && data.ErrorMessage.Length > 0)
                {
                    node.PopulateOnDemand = true;
                    node.SelectAction = TreeNodeSelectAction.Expand;
                }

                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/translation.png";
                node.ImageToolTip = GetMessage("alt xliff file");
                break;
            default:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/text.png";
                node.ImageToolTip = GetMessage("lbl generic file");
                break;
        }

        if (File.Exists(Server.MapPath(strUrl)))
        {
            node.PopulateOnDemand = false;
            node.SelectAction = TreeNodeSelectAction.Select;
            node.NavigateUrl = strUrl;
            sb.Append("<div class=\"L10nZipLink\">");
        }
        else
        {
            node.NavigateUrl = string.Empty;
            sb.Append("<div class=\"L10nZip\">");
        }

        sb.Append("<div class=\"L10nZipFileName\">");
        sb.Append(this.FormatErrorMessage(data.ErrorMessage));
        strName = data.FileName;
        if (!data.IsTargetLanguageNull())
        {
            Ektron.Cms.Localization.LocaleData sourceLocale = this.GetLocaleData(data.SourceLanguage);
            Ektron.Cms.Localization.LocaleData targetLocale = this.GetLocaleData(data.TargetLanguage);
            if (targetLocale != null)
            {
                string targetFlag = targetLocale.FlagUrl;
                if (targetFlag.Length > 0)
                {
                    if (!data.IsSourceLanguageNull() && sourceLocale != null)
                    {
                        string sourceFlag = sourceLocale.FlagUrl;
                        if (sourceFlag.Length > 0)
                        {
                            // 8594 is right arrow
                            sb.AppendFormat("<img src=\"{0}\" alt=\"{1}\" title=\"{1}\" class=\"L10nFlag\" />&#160;&#8594;&#160;", sourceFlag, sourceLocale.EnglishName);
                        }
                    }

                    sb.AppendFormat("<img src=\"{0}\" alt=\"{1}\" title=\"{1}\" class=\"L10nFlag\" />&#160;", targetFlag, targetLocale.EnglishName);
                    strName = targetLocale.CombinedName;
                }
            }
        }

        sb.Append(strName);
        sb.Append("</div>");
        sb.Append("<div class=\"L10nZipFileSize\">");
        if (data.IsFileSizeNull())
        {
            sb.Append("&#160;");
        }
        else
        {
            sb.Append(FormatFileSize(data.FileSize));
        }

        sb.Append("</div>");
        sb.Append("</div>");

        node.Text = sb.ToString();

        if (!this.methodCreateZipNode_isFirstErrorExpanded && data.ErrorMessage != null && data.ErrorMessage.Length > 0)
        {
            this.methodCreateZipNode_isFirstErrorExpanded = true;
            node.Expand();
        }

        return node;
    }
Beispiel #2
0
    private TreeNode CreateSklNode(EkJobDS.LocalizationSkeletonRow data)
    {
        // Special case: skeleton may be used as a placeholder to no skeletons
        EkSklTypes itemType = (EkSklTypes)data.ItemType;
        if (itemType == EkSklTypes.Information)
        {
            if (data.IsErrorMessageNull() || 0 == data.ErrorMessage.Length)
            {
                return this.CreateMsgNode(data.Title, MessageStyleType.Information);
            }
            else
            {
                return this.CreateMsgNode(data.ErrorMessage, MessageStyleType.ErrorMessage);
            }
        }

        TreeNode node = new TreeNode();
        StringBuilder sb = new StringBuilder();
        string strToolTipForItemID = string.Empty;

        node.Value = "skl" + data.SkeletonID;
        node.PopulateOnDemand = true;
        node.SelectAction = TreeNodeSelectAction.Expand;
        switch (itemType)
        {
            case EkSklTypes.Content:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/contentHtml.png";
                node.ImageToolTip = GetMessage("lbl content");
                strToolTipForItemID = GetMessage("generic content id");
                break;
            case EkSklTypes.Form:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/contentForm.png";
                node.ImageToolTip = GetMessage("form text");
                strToolTipForItemID = GetMessage("alt form id");
                break;
            case EkSklTypes.SmartFormData:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/xml.png";
                node.ImageToolTip = GetMessage("lbl smart form");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.SmartFormDesign:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/contentSmartForm.png";
                node.ImageToolTip = GetMessage("generic xml configuration");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.Menu:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/menu.png";
                node.ImageToolTip = GetMessage("generic menu title");
                strToolTipForItemID = GetMessage("alt menu number");
                break;
            case EkSklTypes.MenuItem:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/menu.png";
                node.ImageToolTip = GetMessage("alt menu items");
                strToolTipForItemID = GetMessage("alt menu items number");
                break;
            case EkSklTypes.Taxonomy:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/taxonomy.png";
                node.ImageToolTip = GetMessage("generic taxonomy lbl");
                strToolTipForItemID = GetMessage("alt taxonomy number");
                break;
            case EkSklTypes.Image:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/image.png";
                node.ImageToolTip = GetMessage("generic image");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.Audio:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/audio.png";
                node.ImageToolTip = GetMessage("lbl audio");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.Video:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/video.png";
                node.ImageToolTip = GetMessage("lbl video");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.PDF:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/acrobat.png";
                node.ImageToolTip = GetMessage("content:asset:pdf");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.MsWord:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/word.png";
                node.ImageToolTip = GetMessage("content:mso:doc");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.MsExcel:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/excel.png";
                node.ImageToolTip = GetMessage("content:mso:xls");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.MsPowerPoint:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/powerpoint.png";
                node.ImageToolTip = GetMessage("content:mso:ppt");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.MsPublisher:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/publisher.png";
                node.ImageToolTip = GetMessage("content:mso:pub");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.MsVisio:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/visio.png";
                node.ImageToolTip = GetMessage("content:mso:vsd");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.Flash:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/flash.png";
                node.ImageToolTip = GetMessage("lbl adobe flash");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.Compressed:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/zip.png";
                node.ImageToolTip = GetMessage("content:asset:zip");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.Document:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/text.png";
                node.ImageToolTip = GetMessage("lbl dms documents");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.HtmlFile:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/html.png";
                node.ImageToolTip = GetMessage("lbl html");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.XmlFile:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/xml.png";
                node.ImageToolTip = GetMessage("lbl xml");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.TextFile:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/text.png";
                node.ImageToolTip = GetMessage("content:asset:txt");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.File:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/file.png";
                node.ImageToolTip = GetMessage("lbl generic file");
                strToolTipForItemID = GetMessage("generic id");
                break;
            case EkSklTypes.DmsAsset:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/contentDMSDocument.png";
                node.ImageToolTip = GetMessage("lbl dms documents");
                strToolTipForItemID = GetMessage("generic id");
                break;
            default:
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/text.png";
                node.ImageToolTip = data.ItemType.ToString();
                strToolTipForItemID = GetMessage("generic id");
                break;
        }

        sb.Append("<div class=\"L10nSkl\">");
        sb.Append("<div class=\"L10nSklItemID\"");
        if (strToolTipForItemID.Length > 0)
        {
            sb.Append(" title=\"" + strToolTipForItemID + "\">");
            sb.Append(data.ItemID);
        }
        else
        {
            sb.Append(">");
        }

        sb.Append("</div>");
        sb.Append("<div class=\"L10nSklTitle\">");
        sb.Append(this.FormatErrorMessage(data.ErrorMessage));
        sb.Append(data.Title);
        sb.Append("</div>");
        if (data.IsLastEditDateNull())
        {
            sb.Append(this.FormatDateTime(DateTime.MinValue, "L10nSklDate"));
        }
        else
        {
            sb.Append(this.FormatDateTime(data.LastEditDate, "L10nSklDate", GetMessage("generic date modified")));
        }

        sb.Append("</div>");

        node.Text = sb.ToString();

        if (!this.methodCreateSklNode_isFirstErrorExpanded && data.ErrorMessage != null && data.ErrorMessage.Length > 0)
        {
            this.methodCreateSklNode_isFirstErrorExpanded = true;
            node.Expand();
        }

        return node;
    }
Beispiel #3
0
    private TreeNode CreateXlfNode(EkJobDS.LocalizationTargetRow data)
    {
        TreeNode node = new TreeNode();
        StringBuilder sb = new StringBuilder();
        string strHover = string.Empty;
        EkJobDS.LocalizationTargetRow.States state = (EkJobDS.LocalizationTargetRow.States)data.State;

        node.Value = "xlf" + data.TargetID;
        if (data.ErrorMessage == null || 0 == data.ErrorMessage.Length)
        {
            node.PopulateOnDemand = false;
            node.SelectAction = TreeNodeSelectAction.None;
            strHover = " onmouseover=\"myTVNodeHover(this)\" onmouseout=\"myTVNodeUnhover(this)\"";
        }
        else
        {
            node.PopulateOnDemand = true;
            node.SelectAction = TreeNodeSelectAction.Expand;
        }

        node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/translation.png";
        node.ImageToolTip = GetMessage("alt xliff");
        sb.Append("<div class=\"L10nXlf\"" + strHover + ">");
        sb.Append("<div class=\"L10nXlfFileName\">");
        sb.Append(this.FormatErrorMessage(data.ErrorMessage));
        if (!data.IsTargetLanguageNull())
        {
            Ektron.Cms.Localization.LocaleData targetLocale = this.GetLocaleData(data.TargetLanguage);
            if (targetLocale != null)
            {
                string targetFlag = targetLocale.FlagUrl;
                if (targetFlag.Length > 0)
                {
                    sb.AppendFormat("<img src=\"{0}\" alt=\"{1}\" title=\"{1}\" class=\"L10nFlag\" />&#160;", targetFlag, targetLocale.EnglishName);
                }
            }
        }

        sb.Append(data.FileName);
        sb.Append("</div>");
        if (data.IsLastEditDateNull())
        {
            sb.Append(this.FormatDateTime(DateTime.MinValue, "L10nXlfDate"));
        }
        else
        {
            sb.Append(this.FormatDateTime(data.LastEditDate, "L10nXlfDate", GetMessage("generic date modified")));
        }

        sb.Append("<div class=\"L10nXlfState\">");
        if (data.IsStateNull())
        {
            sb.Append("&#160;");
        }
        else
        {
            switch (state)
            {
                case EkJobDS.LocalizationTargetRow.States.ErrorOccurred:
                    sb.Append(GetMessage("lbl error"));
                    if (!this.methodCreateXlfNode_isFirstErrorExpanded && data.ErrorMessage != null && data.ErrorMessage.Length > 0)
                    {
                        this.methodCreateXlfNode_isFirstErrorExpanded = true;
                        node.Expand();
                    }

                    break;
                case EkJobDS.LocalizationTargetRow.States.NeedsReview:
                    sb.Append(GetMessage("lbl needs review"));
                    break;
                case EkJobDS.LocalizationTargetRow.States.NeedsTranslation:
                    sb.Append(GetMessage("lbl needs translation"));
                    break;
                case EkJobDS.LocalizationTargetRow.States.SignedOff:
                    sb.Append(GetMessage("lbl signed off"));
                    break;
                case EkJobDS.LocalizationTargetRow.States.Translated:
                    sb.Append(GetMessage("lbl translated"));
                    break;
                default:
                    sb.Append(state.ToString());
                    break;
            }
        }

        sb.Append("</div>");
        sb.Append("</div>");

        node.Text = sb.ToString();

        return node;
    }
Beispiel #4
0
    private TreeNode CreateJobNode(EkJobDS.LocalizationJobRow data)
    {
        TreeNode node = new TreeNode();
        StringBuilder sb = new StringBuilder();
        EkJobStates state = (EkJobStates)data.State;
        EkJobTypes jobType = (EkJobTypes)data.JobType;

        bool isJobComplete = EkJobDS.LocalizationJobRow.IsJobDone(state);
        bool jobHasErrors = EkJobStates.CompleteWithErrors == state || EkJobStates.Canceled == state;
        bool isJobRunning = !isJobComplete && !data.IsCurrentStepNull() && !data.IsTotalStepsNull() && data.CurrentStep <= data.TotalSteps;

        node.Value = "job" + data.JobID;
        node.PopulateOnDemand = true;
        node.SelectAction = TreeNodeSelectAction.Expand;

        sb.Append("<div class=\"L10nJob\">");
        sb.Append("<div class=\"L10nJobTitle\">");
        if (state == EkJobStates.CompleteWithErrors)
        {
            sb.Append(this.FormatErrorMessage(GetMessage("lbl complete with alerts")));
        }

        switch (jobType)
        {
            case EkJobTypes.CompressFiles:
                sb.Append(GetMessage("lbl downloadable zip files"));
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/icons/FileTypes/zip.png";
                node.ImageToolTip = GetMessage("alt zipped file");
                if (!this.methodCreateJobNode_isFirstCompressFilesJobExpanded)
                {
                    this.methodCreateJobNode_isFirstCompressFilesJobExpanded = true;
                    node.Expand();
                }

                break;
            case EkJobTypes.Export:
                sb.Append(string.Format(GetMessage("lbl exported locale taxonomy") + " \"{0}\"", data.JobTitle));
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/translationExport.png";
                node.ImageToolTip = GetMessage("lbl exported locale taxonomy");
                if (!this.methodCreateJobNode_isFirstExportJobExpanded)
                {
                    this.methodCreateJobNode_isFirstExportJobExpanded = true;
                    node.Expand();
                }

                break;
            case EkJobTypes.ExportContent:
                sb.Append(string.Format(GetMessage("lbl exported content") + " \"{0}\"", data.JobTitle));
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/translationExport.png";
                node.ImageToolTip = GetMessage("lbl exported content");
                if (!this.methodCreateJobNode_isFirstExportJobExpanded)
                {
                    this.methodCreateJobNode_isFirstExportJobExpanded = true;
                    node.Expand();
                }

                break;
            case EkJobTypes.ExportFolder:
                sb.Append(string.Format(GetMessage("lbl exported folder") + " \"{0}\"", data.JobTitle));
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/translationExport.png";
                node.ImageToolTip = GetMessage("lbl exported folder");
                if (!this.methodCreateJobNode_isFirstExportJobExpanded)
                {
                    this.methodCreateJobNode_isFirstExportJobExpanded = true;
                    node.Expand();
                }

                break;
            case EkJobTypes.ExportMenu:
                sb.Append(GetMessage("lbl exported menus"));
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/translationExport.png";
                node.ImageToolTip = GetMessage("lbl exported menus");
                if (!this.methodCreateJobNode_isFirstExportJobExpanded)
                {
                    this.methodCreateJobNode_isFirstExportJobExpanded = true;
                    node.Expand();
                }

                break;
            case EkJobTypes.ExportTaxonomy:
                sb.Append(GetMessage("lbl exported taxonomy"));
                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/translationExport.png";
                node.ImageToolTip = GetMessage("lbl exported taxonomy");
                if (!this.methodCreateJobNode_isFirstExportJobExpanded)
                {
                    this.methodCreateJobNode_isFirstExportJobExpanded = true;
                    node.Expand();
                }

                break;
            case EkJobTypes.ExtractText:
                sb.Append(GetMessage("lbl extracted"));
                if (!data.IsJobTitleNull() && data.JobTitle.Length > 0)
                {
                    sb.Append(" " + data.JobTitle);
                }

                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/translationExport.png";
                node.ImageToolTip = GetMessage("lbl extracted");
                break;
            case EkJobTypes.Import:
                sb.Append(GetMessage("lbl imported"));
                if (!data.IsJobTitleNull() && data.JobTitle.Length > 0)
                {
                    sb.Append(" " + data.JobTitle);
                }

                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/translationImport.png";
                node.ImageToolTip = GetMessage("lbl imported");
                break;
            case EkJobTypes.MergeText:
                sb.Append(GetMessage("lbl merged"));
                if (!data.IsJobTitleNull() && data.JobTitle.Length > 0)
                {
                    sb.Append(" " + data.JobTitle);
                }

                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/translationImport.png";
                node.ImageToolTip = GetMessage("lbl merged");
                break;
            case EkJobTypes.UncompressFiles:
                sb.Append(GetMessage("lbl uncmpresed file"));
                if (!data.IsJobTitleNull() && data.JobTitle.Length > 0)
                {
                    sb.Append(" " + data.JobTitle);
                }

                node.ImageUrl = GetCommonApi().AppPath + "images/UI/Icons/FileTypes/zip.png";
                node.ImageToolTip = GetMessage("lbl uncmpresed file");
                break;
            default:
                sb.Append(data.JobTitle);
                break;
        }

        sb.Append("</div>");
        sb.Append(this.FormatDateTime(data.StartTime, "L10nJobStartTime"));
        if (isJobRunning && data.TotalSteps > 0)
        {
            float percentProgress = data.CurrentStep / data.TotalSteps;
            int progressWidth = 0;
            progressWidth = Convert.ToInt32(Math.Ceiling(100 * percentProgress));
            //// " + String.Format("{0:0%}", percentProgress) + "
            sb.Append("<div class=\"L10nJobProgress\"><img height=\"10\" width=\"" + progressWidth + "\" src=\"" + this.GetImageUrl("dbl_grad_blue.gif") + "\" border=\"0\" /></div>");
            node.ImageUrl = this.GetImageUrl("loading_small.gif");
            node.Value = "run" + data.JobID;
            node.Expand();
        }
        else
        {
            sb.Append("<div class=\"L10nJobState\">");
            switch (state)
            {
                case EkJobStates.Canceled:
                    sb.Append(GetMessage("lbl canceled"));
                    break;
                case EkJobStates.Complete:
                    sb.Append(GetMessage("lbl complete"));
                    break;
                case EkJobStates.CompleteWithErrors:
                    sb.Append(GetMessage("lbl alert"));
                    break;
                case EkJobStates.Initializing:
                    sb.Append(GetMessage("lbl initializing"));
                    break;
                case EkJobStates.Running:
                    sb.Append(GetMessage("lbl running"));
                    break;
                default:
                    sb.Append(data.State);
                    break;
            }

            sb.Append("</div>");
        }

        if (this.isFirstJob && (!this.methodCreateJobNode_isFirstJobExpanded || jobHasErrors))
        {
            this.methodCreateJobNode_isFirstJobExpanded = true;
            node.Expand();
        }

        if (!isJobComplete)
        {
            this.isAnyJobRunning = true;
        }

        sb.Append("</div>");
        if (data.IsParentJobIDNull())
        {
            if (isJobRunning)
            {
                sb.Append(" <a href=\"?cancel=" + data.JobID + "\" class=\"L10nJobCancel\">" + GetMessage("lnk cancel") + "</a>");
            }
            else
            {
                sb.Append(" <a href=\"?delete=" + data.JobID + "\" class=\"L10nJobDelete\" onclick=\"return confirmDeleteAction();\">" + GetMessage("lnk delete") + "</a>");
                sb.Append(" <a href=\"?deleteall=" + data.JobID + "\" class=\"L10nJobDeleteAllPrevious\" onclick=\"return confirmDeleteAction();\">" + GetMessage("lnk delete all below") + "</a>");
            }
        }

        node.Text = sb.ToString();

        return node;
    }