/// <summary> /// Delete the translation of the term /// </summary> private void BtnDelete() { using (TMExpressionTranslation tt = TMExpressionTranslation.GetByKey(expressionId, languageCode)) { if (tt != null) { #region Delete result if (tt.Delete(HyperCatalog.Shared.SessionState.User.Id)) { Page.ClientScript.RegisterStartupScript(this.GetType(), "reloadParent", "<script>ReloadParent();top.close();</script>"); } else { lbMessage.Text = TMExpressionTranslation.LastError; lbMessage.CssClass = "hc_error"; lbMessage.Visible = true; } #endregion } else { lbMessage.Text = "Error: TM Expression translation can't be deleted - translation not found"; lbMessage.CssClass = "hc_error"; lbMessage.Visible = true; } } }
/// <summary> /// Save the translation of the term /// </summary> private void BtnSave() { using (TMExpressionTranslation tt = TMExpressionTranslation.GetByKey(expressionId, languageCode)) { if (tt != null) { #region Update translation tt.UserId = SessionState.User.Id; tt.Value = txtTMExpressionValue.Text.Trim(); #endregion int r = tt.Save(); #region Save result if (r > 0) { Page.ClientScript.RegisterStartupScript(this.GetType(), "reloadParent", "<script>ReloadParent();top.close();</script>"); } else { lbMessage.Text = TMExpressionTranslation.LastError; lbMessage.CssClass = "hc_error"; lbMessage.Visible = true; } #endregion } else { lbMessage.Text = TMExpressionTranslation.LastError; lbMessage.CssClass = "hc_error"; lbMessage.Visible = true; } } }
/// <summary> /// Show the list of translations for the selected TM Expression /// </summary> private void ShowTMTranslations() { using (HCExpression = TMExpression.GetByKey(Convert.ToInt32(expressionId))) { int TranslationsCount = HCExpression.Translations.Count - HCExpression.TranslationsMissingCount; UITools.RefreshTab(Page, "Translations", "'" + TranslationsCount.ToString() + "/" + HCExpression.Translations.Count.ToString() + "'"); using (TMExpressionTranslationList list = TMExpressionTranslation.GetAll(expressionId, string.Empty)) { dg.DataSource = list; Utils.InitGridSort(ref dg, false); dg.DisplayLayout.CellClickActionDefault = CellClickAction.NotSet; dg.DisplayLayout.ActivationObject.AllowActivation = false; dg.DataBind(); } } }
/// <summary> /// Delete the selected translation of the TM Expression /// </summary> private void Delete() { for (int i = 0; i < dg.Rows.Count; i++) { TemplatedColumn col = (TemplatedColumn)dg.Rows[i].Cells.FromKey("Select").Column; CheckBox cb = (CheckBox)((CellItem)col.CellItems[i]).FindControl("g_sd"); if (cb.Checked) { using (TMExpressionTranslation tt = TMExpressionTranslation.GetByKey(expressionId, dg.Rows[i].Cells.FromKey("LanguageCode").ToString())) { if (tt != null) { #region Delete result if (!tt.Delete(HyperCatalog.Shared.SessionState.User.Id)) { lbMessage.Text = "Error: Translation [" + dg.Rows[i].Cells.FromKey("LanguageCode").ToString() + "] can't be deleted"; lbMessage.CssClass = "hc_error"; lbMessage.Visible = true; break; } #endregion } else { lbMessage.Text = "Error: Term translation [" + dg.Rows[i].Cells.FromKey("Language").ToString() + "] can't be deleted - translation not found"; lbMessage.CssClass = "hc_error"; lbMessage.Visible = true; } } } } ShowTMTranslations(); lbMessage.Text = "Data deleted"; lbMessage.CssClass = "hc_success"; lbMessage.Visible = true; }
/// <summary> /// Save translations /// </summary> private void Save() { bool canUpdate; for (int i = 0; i < dg.Rows.Count; i++) { string languageCode = dg.Rows[i].Cells.FromKey("LanguageCode").Text; TemplatedColumn col = (TemplatedColumn)dg.Rows[i].Cells.FromKey("Value").Column; TextBox tb = (TextBox)((CellItem)col.CellItems[i]).FindControl("TXTChangedValue"); string newTMExpressionValue = tb.Text; TMExpressionTranslation tt; using (tt = TMExpressionTranslation.GetByKey(expressionId, languageCode)) { if (tt == null) { canUpdate = newTMExpressionValue != null; if (canUpdate) { canUpdate = newTMExpressionValue.Trim() != string.Empty; } #region New Translation if (canUpdate) { tt = new TMExpressionTranslation(expressionId, newTMExpressionValue, languageCode, dg.Rows[i].Cells.FromKey("Rtl").Text.ToLower() == "true", SessionState.User.Id, DateTime.UtcNow); int r = tt.Save(); if (r < 0) { lbMessage.Text = "Error: Translation [" + languageCode + "] can't be created"; lbMessage.CssClass = "hc_error"; lbMessage.Visible = true; break; } } #endregion } #region Translation already exist else { if (tt.Value != newTMExpressionValue) { tt.LanguageCode = languageCode; tt.Value = newTMExpressionValue; tt.Rtl = dg.Rows[i].Cells.FromKey("Rtl").Text.ToLower() == "true"; canUpdate = newTMExpressionValue != null; if (canUpdate) { canUpdate = newTMExpressionValue.Trim() != string.Empty; } #region Value modified if (canUpdate) { int r = tt.Save(); if (r < 0) { lbMessage.Text = "Error: Translation [" + languageCode + "] can't be updated"; lbMessage.CssClass = "hc_error"; lbMessage.Visible = true; break; } } #endregion #region Value deleted else { if (!tt.Delete(HyperCatalog.Shared.SessionState.User.Id)) { lbMessage.Text = "Error: localization [" + languageCode + "] can't be deleted"; lbMessage.CssClass = "hc_error"; lbMessage.Visible = true; break; } } #endregion } } #endregion } } ShowTMTranslations(); lbMessage.Text = "Data saved"; lbMessage.CssClass = "hc_success"; lbMessage.Visible = true; using (Database dbObj = Utils.GetMainDB()) { UITools.RefreshTab(Page, "Translations", Utils.GetCount(dbObj, String.Format("SELECT COUNT(*) FROM TMTranslations WHERE TMExpressionId = {0}", expressionId))); } }
protected void Page_Load(object sender, System.EventArgs e) { #region Check Capabilities if ((SessionState.User.IsReadOnly) || (!SessionState.User.HasCapability(CapabilitiesEnum.MANAGE_TRANSLATION_MEMORY))) { uwToolbar.Items.FromKeyButton("Save").Enabled = false; uwToolbar.Items.FromKeyButton("Delete").Enabled = false; } #endregion if (Request["e"] != null) { expressionId = Convert.ToInt64(Request["e"]); languageCode = Request["l"]; if (!Page.IsPostBack) { try { using (HyperCatalog.Business.Language l = HyperCatalog.Business.Language.GetByKey(languageCode)) { string languageName = l.Name; lbLanguage.Text = "[" + languageCode + "] " + languageName; } using (TMExpression t = TMExpression.GetByKey(expressionId)) { if (t != null) { txtTMExpressionValueMaster.Text = t.Value; using (TMExpressionTranslation tt = TMExpressionTranslation.GetByKey(expressionId, languageCode)) { if (tt == null) { #region New translation uwToolbarTitle.Items.FromKeyLabel("Action").Text = "Creating"; hlCreator.Text = UITools.GetDisplayName(t.User.FullName); hlCreator.NavigateUrl = "mailto:" + UITools.GetDisplayEmail(t.User.Email) + Server.HtmlEncode("?subject=TMTranslation[#" + t.Id.ToString() + " - " + t.LanguageCode + "]");; lbOrganization.Text = t.User.OrgName; lbOrganization.Visible = hlCreator.Text == t.User.FullName; lbCreatedOn.Text = SessionState.User.FormatUtcDate(t.ModifyDate.Value, true, SessionState.User.FormatDate + ' ' + SessionState.User.FormatTime); #endregion } else { #region Update translation uwToolbarTitle.Items.FromKeyLabel("Action").Text = "Updating"; txtTMExpressionValue.Text = tt.Value; hlCreator.Text = tt.User.FullName; hlCreator.NavigateUrl = "mailto:" + UITools.GetDisplayEmail(tt.User.Email) + Server.HtmlEncode("?subject=TMExpressionTranslation");; lbOrganization.Text = tt.User.OrgName; lbCreatedOn.Text = SessionState.User.FormatUtcDate(tt.ModifyDate.Value, true, SessionState.User.FormatDate + ' ' + SessionState.User.FormatTime); #endregion } } } else { Response.Write("<script>alert('An error occurred when retrieving translation expression [" + Request["t"] + "]' );window.close();</script>"); Response.End(); } } } catch (Exception ex) { Response.Write("<script>alert('An error occurred when retrieving translation expression:" + ex.Message + " [" + Request["t"] + "]' );window.close();</script>"); Response.End(); } } } }