protected void CategoriesDataList_DataBound(object sender, EventArgs e) { if (!IsPostBack) { string Culture = System.Threading.Thread.CurrentThread.CurrentCulture.Name; DropDownList LanguageSelector = (DropDownList)CategoriesDataList.FindControl("LanguageSelector"); //LanguageSelector.SelectedValue = Culture; // /* Hide the 'other' option if current locale is not english*/ // if (!Culture.Equals("en-GB")) // { // LanguageSelector.Items.RemoveAt(4); // } Panel startPanel = (Panel)CategoriesDataList.FindControl("IntroPanel"); startPanel.CssClass = "IntroDiv In_" + Culture; } }
protected void languageSelector_SelectedIndexChanged(object sender, EventArgs e) { DropDownList LanguageSelector = (DropDownList)CategoriesDataList.FindControl("LanguageSelector"); String selectedLang = LanguageSelector.SelectedValue; /* Set the select parameters for the sql sources*/ SqlCategories.SelectParameters["Locale"].DefaultValue = System.Threading.Thread.CurrentThread.CurrentCulture.Name; SqlCategories.SelectParameters["TargetedCountry"].DefaultValue = selectedLang; SqlStakeholders.SelectParameters["Country"].DefaultValue = selectedLang.Equals("en-GB") ? "EU" : selectedLang; SqlCountries.SelectParameters["Language"].DefaultValue = selectedLang; /* Refresh the sql sources*/ SqlCategories.DataBind(); SqlStakeholders.DataBind(); SqlCountries.DataBind(); /* Refresh the controls */ //PartySelector.DataBind(); }
protected void CategoriesDataList_ItemDatabound(object sender, ListViewItemEventArgs e) { string Culture = System.Threading.Thread.CurrentThread.CurrentCulture.Name; LinkButton start = (LinkButton)CategoriesDataList.FindControl("StartButton"); LinkButton next = (LinkButton)e.Item.FindControl("NextButton"); LinkButton previous = (LinkButton)e.Item.FindControl("PreviousButton"); LinkButton results = (LinkButton)CategoriesDataList.FindControl("FinishBtn"); LinkButton demogra = (LinkButton)CategoriesDataList.FindControl("DemographicsBtn"); LinkButton submitdemog = (LinkButton)CategoriesDataList.FindControl("SubmitDemogBtn"); Panel error = (Panel)e.Item.FindControl("ErrorMessage"); start.CssClass = "startBtn Btn_" + Culture; next.CssClass = "nextBtn nBtn_" + Culture; previous.CssClass = "previousBtn prBtn_" + Culture; results.CssClass = "resultsBtn rBtn_" + Culture; demogra.CssClass = "finishBtn finBtn_" + Culture; submitdemog.CssClass = "submitDemogBtn demBtn_" + Culture; error.CssClass = "errorMessage erBtn_" + Culture; }
protected void Page_Load(object sender, EventArgs e) { /* ATTENTION: The demographics pages must have a localised value in the * description meta tag. this is what gets displayed as a title of the * popup window. This has been changed in <site-home>/js/dnn.modalpopup.js * */ //showDemographics.OnClientClick = "return " + //UrlUtils.PopUpUrl("/" + System.Threading.Thread.CurrentThread.CurrentCulture.Name //+ "/demographics.aspx", this, PortalSettings, true, false, 380, 420, false, ""); /* If we have a postback, the user has finished the questionnary * and we must show him the results */ if (IsPostBack) { /* Check if this postback is after the finish of the questionnaire * and if yes, show the results, adjust the menu links * and keep the answers so as to be selected in the reloaded questionnaire */ if (!HiddenQuestions.Value.Equals("")) { CategoriesDataList.Style.Add(HtmlTextWriterStyle.Display, "none"); HtmlGenericControl qu = (HtmlGenericControl)CategoriesDataList.FindControl("questionnaire"); qu.Style.Add(HtmlTextWriterStyle.Display, "none"); ResultsPanel.Visible = true; ResultsLink.Attributes.Remove("OnClick"); ResultsLink.CssClass = "selected"; HomeLink.CssClass = ""; ResultsLink.Attributes.Add("OnClick", "return showResultsMessage('false');"); // if (showDemographicsPopup.Value == "true") // { // /* Show the demographics popup*/ // Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "jQueryCode", // @"jQuery(document).ready(function() {jQuery('a[id$=""showDemographics\""]').click(); // });", true); // } /* keep the selected answers in session*/ Session["LoadedSaved"] = HiddenAnswers.Value; if (Request.IsAuthenticated) { AnsweredDemogr.Value = showDemographics(); } } else { CategoriesDataList.Style.Add(HtmlTextWriterStyle.Display, "block"); HtmlGenericControl qu = (HtmlGenericControl)CategoriesDataList.FindControl("questionnaire"); qu.Style.Add(HtmlTextWriterStyle.Display, "block"); ResultsPanel.Visible = false; } } //Add the JQuery libraries for the UI ScriptReference objScriptReference; ScriptManager objScriptManager = ScriptManager.GetCurrent(this.Page); objScriptReference = new ScriptReference(@"~/DesktopModules/EuProfiler/js/jquery-ui-1.8.10.min.js"); objScriptManager.Scripts.Add(objScriptReference); objScriptReference = new ScriptReference(@"~/DesktopModules/EuProfiler/js/jquery.ui.stars.min.js"); objScriptManager.Scripts.Add(objScriptReference); objScriptReference = new ScriptReference(@"~/DesktopModules/EuProfiler/js/ammap/swfobject.js"); objScriptManager.Scripts.Add(objScriptReference); objScriptReference = new ScriptReference(@"~/DesktopModules/EuProfiler/js/jquery.mousewheel.min.js"); objScriptManager.Scripts.Add(objScriptReference); objScriptReference = new ScriptReference(@"~/DesktopModules/EuProfiler/js/jquery.featureList-1.0.0.js"); objScriptManager.Scripts.Add(objScriptReference); if (!IsPostBack) { ResultsLink.Attributes.Add("OnClick", "return showResultsMessage('true');"); string Culture = System.Threading.Thread.CurrentThread.CurrentCulture.Name; SqlCategories.SelectParameters["Locale"].DefaultValue = Culture; /*if (Culture.StartsWith("en")) * { * SqlStakeholders.SelectParameters["Country"].DefaultValue = "el-GR"; * SqlCategories.SelectParameters["TargetedCountry"].DefaultValue = "el-GR"; * SqlCountries.SelectParameters["Language"].DefaultValue = "en-GB"; * SqlCountryNames.SelectParameters["Locale"].DefaultValue = "en-GB"; * } * else * {*/ SqlStakeholders.SelectParameters["Country"].DefaultValue = Culture.Equals("en-GB") ? "EU" : Culture; SqlCategories.SelectParameters["TargetedCountry"].DefaultValue = Culture; SqlCountries.SelectParameters["Language"].DefaultValue = Culture; SqlCountryNames.SelectParameters["Locale"].DefaultValue = Culture; //} if (Request.IsAuthenticated) { String connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["SiteSqlServer"].ToString(); using (SqlConnection connection = new SqlConnection(connectionString)) { String queryString = " SELECT UserAnswers,UserRatings FROM ATC_PolicyProfiler_SavedAnswers " + " WHERE UserID=" + this.UserId.ToString() + " ORDER BY SavedOnDate DESC"; SqlCommand command = new SqlCommand(queryString, connection); command.Connection.Open(); String result = (String)command.ExecuteScalar(); if (result != null) { Session["LoadedSaved"] = result; ResultsLink.Attributes.Add("OnClick", "return showResultsMessage('summary');"); } } AnsweredDemogr.Value = showDemographics(); } } LocalResourceFile = Localization.GetResourceFile(this, "ViewEuProfiler.ascx." + System.Threading.Thread.CurrentThread.CurrentCulture.Name + ".resx"); }
///*Shows the sql being executed */ //protected void SqlDemographics_Inserting(object sender, SqlDataSourceCommandEventArgs e) //{ // SqlParameterCollection myCollection = (SqlParameterCollection)e.Command.Parameters; // IEnumerator ie = myCollection.GetEnumerator(); // string strSQL = string.Empty; // while ((ie.MoveNext())) // { // SqlParameter param = (SqlParameter)ie.Current; // string strValue = string.Empty; // if (param.Value == null) // strValue = "NULL"; // else // strValue = param.Value.ToString(); // strSQL += param.ParameterName.ToString() + "=" + strValue + "<BR />"; // } // Response.Write(strSQL.ToString()); //} protected void FinishButton_Click(object sender, EventArgs e) { string[] stringSeparators = new string[] { "--" }; string[] questions = HiddenQuestions.Value.Split(stringSeparators, System.StringSplitOptions.None); string[] answers = HiddenAnswers.Value.Split(stringSeparators, System.StringSplitOptions.None); string[] ratings = HiddenRatings.Value.Split(stringSeparators, System.StringSplitOptions.None); string Culture = System.Threading.Thread.CurrentThread.CurrentCulture.Name; DropDownList LanguageSelector = (DropDownList)CategoriesDataList.FindControl("LanguageSelector"); targetCountry = LanguageSelector.SelectedValue; string timestamp = GetTimestamp(System.DateTime.Now); string datetime = DateTime.Now.ToString("yyyy-MM-dd H:mm:ss zzz"); string anonymousUserId = ""; for (int i = 0; i < questions.Length - 1; i++) { SqlCategories.InsertParameters["ModuleId"].DefaultValue = this.ModuleId.ToString(); SqlCategories.InsertParameters["QuestionnaireID"].DefaultValue = timestamp; SqlCategories.InsertParameters["QuestionID"].DefaultValue = questions[i]; SqlCategories.InsertParameters["Locale"].DefaultValue = Culture; SqlCategories.InsertParameters["TargetedCountry"].DefaultValue = targetCountry; SqlCategories.InsertParameters["AnswerID"].DefaultValue = answers[i]; SqlCategories.InsertParameters["AnsweredOnDate"].DefaultValue = datetime; if (Request.IsAuthenticated) { SqlCategories.InsertParameters["AnsweredByUser"].DefaultValue = this.UserId.ToString(); SqlCategories.InsertParameters["AnonymousGuid"].DefaultValue = ""; } else { HttpCookie pbpCookie = Request.Cookies.Get("puzzledByPolicy"); if (pbpCookie != null) { anonymousUserId = pbpCookie["anonymousId"]; } else { anonymousUserId = SetCookie("puzzledByPolicy").ToString(); } SqlCategories.InsertParameters["AnsweredByUser"].DefaultValue = "-1"; SqlCategories.InsertParameters["AnonymousGuid"].DefaultValue = anonymousUserId; } // IP = Request.UserHostAddress() SqlCategories.InsertParameters["Rating"].DefaultValue = ratings[i]; try { SqlCategories.Insert(); } catch (FormatException ex) { Response.Redirect("http://join.puzzledbypolicy.eu/"); } } LinkButton sendingBtn = (LinkButton)sender; /* If SubmitDemogBtn has been clicked, we also save the demographics * answers */ if (sendingBtn.ID.Equals("SubmitDemogBtn")) { if (Request.IsAuthenticated) { SqlDemographics.InsertParameters["userID"].DefaultValue = this.UserId.ToString(); } else { SqlDemographics.InsertParameters["userID"].DefaultValue = anonymousUserId; } SqlDemographics.InsertParameters["QuestionnaireID"].DefaultValue = timestamp; if (!DEM_birthplace.Value.Equals("")) { SqlDemographics.InsertParameters["Question1"].DefaultValue = DEM_birthplace.Value; } if (!DEM_livingplace.Value.Equals("")) { SqlDemographics.InsertParameters["Question2"].DefaultValue = DEM_livingplace.Value; } if (!DEM_age.Value.Equals("")) { SqlDemographics.InsertParameters["Question3"].DefaultValue = DEM_age.Value; } if (!DEM_sex.Value.Equals("")) { SqlDemographics.InsertParameters["Question4"].DefaultValue = DEM_sex.Value; } if (!DEM_education.Value.Equals("")) { SqlDemographics.InsertParameters["Question5"].DefaultValue = DEM_education.Value; } if (!DEM_profession.Value.Equals("")) { SqlDemographics.InsertParameters["Question6"].DefaultValue = DEM_profession.Value; } if (!DEM_municipality.Value.Equals("")) { SqlDemographics.InsertParameters["Question7"].DefaultValue = DEM_municipality.Value; } try { SqlDemographics.Insert(); } catch (FormatException ex) { Response.Write(ex.Message); return; //Response.Redirect("http://join.puzzledbypolicy.eu/"); } } LinkButton save = (LinkButton)ResultsPanel.FindControl("SaveButton"); LinkButton clear = (LinkButton)ResultsPanel.FindControl("ClearButton"); HyperLink feedback = (HyperLink)ResultsPanel.FindControl("FeedbackButton"); save.CssClass = "saveBtn sBtn_" + Culture; clear.CssClass = "clearBtn clBtn_" + Culture; feedback.CssClass = "feedbackBtn fBtn_" + Culture; feedback.NavigateUrl = ConfigurationManager.AppSettings["DomainName"] + "/" + Culture + "/feedback.aspx"; feedback.Target = "_blank"; /*We set the hidden field to false so as not to popup the demographics * unless we reload the profiler */ //showDemographicsPopup.Value = "false"; /* Link with u-Debate. * * Completely agree/disagree: 3 points * Tend to agree/disagree : 1 point * Neutral/No opinion: 0 points * * Multiply by Ratings 1 -> 1 * 2 -> 2 * 3 -> 3 * * Category Questions * 1 2 - 4 * 2 5 - 6 * 3 7 - 8 * 4 9 - 11 * 5 12 - 14 */ int[] weights = new int[13]; // 13 questions int[] extremes = new int[5]; /* We skip the first(general) and last(specific) questions (plus the last empty cell) */ for (int an = 1; an <= answers.Length - 3; an++) { if (answers[an] == "1" || answers[an] == "5") { weights[an - 1] = 3; } else if (answers[an] == "2" || answers[an] == "4") { weights[an - 1] = 1; } else { weights[an - 1] = 0; } if (Convert.ToInt32(ratings[an]) > 0) { weights[an - 1] *= Convert.ToInt32(ratings[an]); } } extremes[0] = weights[0] + weights[1] + weights[2]; // employment extremes[1] = weights[3] + weights[4]; //studying extremes[2] = weights[5] + weights[6]; //family reunification extremes[3] = weights[7] + weights[8] + weights[9]; //Long-term resident immigrants and citizenship extremes[4] = weights[10] + weights[11] + weights[12]; //Irregular migration, re-admission and return int topExtreme = 0; for (int i = 0; i < 5; i++) { if (extremes[i] > extremes[topExtreme]) { topExtreme = i; } } string threadUrl = String.Empty; string uDebateText = String.Empty; /* Check if the user had selected no answer/neutral in all questions * and just link to the home debate page if this is true */ if (extremes[topExtreme] > 0) { uDebateText = Localization.GetString("uDebateLink" + (topExtreme + 1) + ".Text", LocalResourceFile); } else { topExtreme = -1; // no answer so we go to the default threadurl } if (Culture == "en-GB") { switch (topExtreme) { case 0: threadUrl = fetchThreadUrl("59", Culture); break; case 1: threadUrl = fetchThreadUrl("60", Culture); break; case 2: threadUrl = fetchThreadUrl("61", Culture); break; case 3: threadUrl = fetchThreadUrl("62", Culture); break; case 4: threadUrl = fetchThreadUrl("63", Culture); break; default: threadUrl = "http://join.puzzledbypolicy.eu/en-GB/uDebate.aspx"; break; } } else { switch (targetCountry) { case "el-GR": switch (topExtreme) { case 0: threadUrl = fetchThreadUrl("65", Culture); break; case 1: threadUrl = fetchThreadUrl("76", Culture); break; case 2: threadUrl = fetchThreadUrl("77", Culture); break; case 3: threadUrl = fetchThreadUrl("69", Culture); break; case 4: threadUrl = fetchThreadUrl("71", Culture); break; default: threadUrl = "http://join.puzzledbypolicy.eu/el-GR/uDebate.aspx"; break; } break; case "es-ES": switch (topExtreme) { case 0: threadUrl = fetchThreadUrl("35", Culture); break; case 1: threadUrl = fetchThreadUrl("36", Culture); break; case 2: threadUrl = fetchThreadUrl("37", Culture); break; case 3: threadUrl = fetchThreadUrl("38", Culture); break; case 4: threadUrl = fetchThreadUrl("39", Culture); break; default: threadUrl = "http://join.puzzledbypolicy.eu/es-ES/uDebate.aspx"; break; } break; case "it-IT": switch (topExtreme) { case 0: threadUrl = fetchThreadUrl("26", Culture); break; case 1: threadUrl = fetchThreadUrl("48", Culture); break; case 2: threadUrl = fetchThreadUrl("49", Culture); break; case 3: threadUrl = fetchThreadUrl("50", Culture); break; case 4: threadUrl = fetchThreadUrl("51", Culture); break; default: threadUrl = "http://join.puzzledbypolicy.eu/it-IT/uDebate.aspx"; break; } break; case "hu-HU": switch (topExtreme) { case 0: threadUrl = fetchThreadUrl("42", Culture); break; case 1: threadUrl = fetchThreadUrl("72", Culture); break; case 2: threadUrl = fetchThreadUrl("73", Culture); break; case 3: threadUrl = fetchThreadUrl("74", Culture); break; case 4: threadUrl = fetchThreadUrl("75", Culture); break; default: threadUrl = "http://join.puzzledbypolicy.eu/hu-HU/uDebate.aspx"; break; } break; default: switch (topExtreme) { case 0: threadUrl = fetchThreadUrl("59", Culture); break; case 1: threadUrl = fetchThreadUrl("60", Culture); break; case 2: threadUrl = fetchThreadUrl("61", Culture); break; case 3: threadUrl = fetchThreadUrl("62", Culture); break; case 4: threadUrl = fetchThreadUrl("63", Culture); break; default: threadUrl = "http://join.puzzledbypolicy.eu/en-GB/uDebate.aspx"; break; } break; } } if (!Page.ClientScript.IsClientScriptBlockRegistered("exampleScript")) { Page.ClientScript.RegisterStartupScript(this.GetType(), "exampleScript", @" <script language = 'javascript'> jQuery(document).ready(function() { jQuery('#uDebateProposal').html(""<h3>" + Localization.GetString("uDebateHeader.Text", LocalResourceFile) + "</h3>" + uDebateText + "<p align='center'> <a href='" + threadUrl + @"' target='_blank'>" + Localization.GetString("TakePart", LocalResourceFile) + @"</a></p>""); jQuery('.trigger').show(); jQuery('.trigger').addClass('active'); jQuery('.uDebateLinkDiv').show(); }); </script> "); } //jQuery('#uDebateLinkDiv').animate({'bottom': '+=213px'}, 4000); //String host = ConfigurationManager.AppSettings["hostServer"]; //String host = "http://join.puzzledbypolicy.eu"; String host = ConfigurationManager.AppSettings["DomainName"]; String resultsService = host + "/PProfilerResults/BarChartData.aspx?questions=" + HiddenQuestions.Value + "&answers=" + HiddenAnswers.Value + "&ratings=" + HiddenRatings.Value + "&locale=" + targetCountry; XmlDocument xmlDoc = new XmlDocument(); xmlDoc.Load(new StringReader(GetMessage(resultsService))); XmlNodeList xmlnodelist = xmlDoc.GetElementsByTagName("graph"); if (xmlnodelist.Count > 0) { XmlNode xmlnode = xmlnodelist.Item(0); XmlNodeList valueslist = xmlnode.ChildNodes; foreach (XmlNode value in valueslist) { ProfilerResults += value.Attributes["title"].Value + ": "; ProfilerResults += value.InnerText + "% "; } } }