PageRenderTime 51ms CodeModel.GetById 23ms RepoModel.GetById 0ms app.codeStats 1ms

/WEB/_em/settings/Default.aspx.cs

https://bitbucket.org/zzare/eko
C# | 421 lines | 244 code | 97 blank | 80 comment | 41 complexity | 8399b9011291caf20f517cbfddc29c6e MD5 | raw file
  1. using System;
  2. using System.Collections;
  3. using System.Configuration;
  4. using System.Data;
  5. using System.Linq;
  6. using System.Web;
  7. using System.Web.Security;
  8. using System.Web.UI;
  9. using System.Web.UI.HtmlControls;
  10. using System.Web.UI.WebControls;
  11. using System.Web.UI.WebControls.WebParts;
  12. using System.Xml.Linq;
  13. using SM.EM.UI;
  14. using SM.EM.UI.Controls ;
  15. public partial class _em_settings_Default : BasePage_EMENIK
  16. {
  17. protected int MaxStep = 7;
  18. protected bool IsWizardMode {
  19. get {
  20. return !em_user.ACTIVE_USER;
  21. }
  22. }
  23. protected BaseWizardStep CurrentStep
  24. {
  25. get
  26. {
  27. switch (CurrentStepID)
  28. {
  29. case 1:
  30. return StepDesign as BaseWizardStep;
  31. case 2:
  32. return StepLanguage as BaseWizardStep;
  33. case 3:
  34. return StepMenu as BaseWizardStep;
  35. case 4:
  36. return StepHeader as BaseWizardStep;
  37. case 5:
  38. return StepModuli as BaseWizardStep;
  39. case 6:
  40. return StepFooter as BaseWizardStep;
  41. case 7:
  42. return StepAdvanced as BaseWizardStep;
  43. case 8:
  44. return StepFinish as BaseWizardStep;
  45. default:
  46. return StepDesign as BaseWizardStep;
  47. }
  48. }
  49. }
  50. protected int CurrentStepID {
  51. get {
  52. int step = -1;
  53. // get step form viewstate
  54. if (step == -1 && ViewState["CurrentStepID"] != null){
  55. Int32.TryParse(ViewState["CurrentStepID"].ToString(), out step);
  56. }
  57. // if querystring is set, use it
  58. if (step == -1 && Request.QueryString["st"] != null){
  59. Int32.TryParse(Request.QueryString["st"], out step);
  60. }
  61. // if in wizard mode and step is not set, go to steps done
  62. if (step == -1 && !this.em_user.ACTIVE_USER)
  63. step = em_user.STEPS_DONE + 1;
  64. // if NOT wizard mode and step is not set, go to DEFAULT step
  65. if (step == -1 && this.em_user.ACTIVE_USER)
  66. step = 3;
  67. // if step is not allowed, go to max step
  68. if (step > em_user.STEPS_DONE + 1) step = em_user.STEPS_DONE + 1;
  69. if (step < 1) step = 1;
  70. if (step > MaxStep) step = MaxStep+1;
  71. return step;
  72. }
  73. set {
  74. ViewState["CurrentStepID"] = value;
  75. }
  76. }
  77. protected override void OnPreInit(EventArgs e)
  78. {
  79. AutoRedirect = false;
  80. IsContentPage = false;
  81. DisablePartialRendering = false;
  82. base.OnPreInit(e);
  83. //if not editor then set error
  84. if (!IsEditMode) this.RequestLogin();
  85. // disable viewstate on all steps
  86. //StepDesign.EnableViewState = false;
  87. //StepMenu.EnableViewState = false;
  88. //StepFooter.EnableViewState = false;
  89. //StepHeader.EnableViewState = false;
  90. //StepModuli.EnableViewState = false;
  91. //StepLanguage.EnableViewState = false;
  92. //StepAdvanced.EnableViewState = false;
  93. //StepFinish.EnableViewState = false;
  94. //CurrentStep.EnableViewState = true;
  95. }
  96. protected void Page_Load(object sender, EventArgs e)
  97. {
  98. // tmp, todo:odstrani
  99. //SM.EM.Caching.RemoveEmenikUserMenuCacheKey(em_user.USERNAME);
  100. // set status menu seelected
  101. SelectedStatusMenu = SM.BLL.Common.EditModeStatus.Settings;
  102. if (!IsPostBack) {
  103. // init navigation
  104. LoadStep();
  105. }
  106. }
  107. protected override void OnPreRender(EventArgs e)
  108. {
  109. if (!String.IsNullOrEmpty( CurrentStep.ErrorText ))
  110. SetError(CurrentStep.ErrorText);
  111. base.OnPreRender(e);
  112. }
  113. protected void NavLoadStep(object sender, EventArgs e) {
  114. LinkButton bt = (LinkButton)sender;
  115. CurrentStepID = Int32.Parse(bt.CommandArgument );
  116. LoadStep();
  117. }
  118. protected void LoadStep() {
  119. // init wizard
  120. if (IsWizardMode)
  121. {
  122. panNormalNav.Visible = CurrentStep.AllwaysShowSaveButton;
  123. panWizardNav.Visible = true;
  124. divStatMainWiz.Visible = true;
  125. divStatMainNorm.Visible = false;
  126. panNormalNavTop.Visible = CurrentStep.ShowTopNavigation && CurrentStep.AllwaysShowSaveButton;
  127. panWizardNavTop.Visible = CurrentStep.ShowTopNavigation;
  128. }
  129. else
  130. {
  131. panNormalNav.Visible = !CurrentStep.AllwaysHideSaveButton;
  132. panWizardNav.Visible = false;
  133. divStatMainWiz.Visible = false ;
  134. divStatMainNorm.Visible = true;
  135. panNormalNavTop.Visible = CurrentStep.ShowTopNavigation && !CurrentStep.AllwaysHideSaveButton;
  136. panWizardNavTop.Visible = false;
  137. }
  138. divStatus.InnerHtml = CurrentStep.Description;
  139. // hide all steps
  140. StepDesign.Visible = false;
  141. StepMenu.Visible = false;
  142. StepFooter.Visible = false;
  143. StepHeader.Visible = false;
  144. StepModuli.Visible = false;
  145. StepLanguage.Visible = false;
  146. StepAdvanced.Visible = false;
  147. StepFinish.Visible = false;
  148. // disable viewstate on all steps
  149. //StepDesign.EnableViewState = false;
  150. //StepMenu.EnableViewState = false;
  151. //StepFooter.EnableViewState = false;
  152. //StepHeader.EnableViewState = false;
  153. //StepModuli.EnableViewState = false;
  154. //StepLanguage.EnableViewState = false;
  155. //StepAdvanced.EnableViewState = false;
  156. //StepFinish.EnableViewState = false;
  157. // show current step
  158. CurrentStep.Visible = true;
  159. CurrentStep.EnableViewState = true;
  160. CurrentStep.LoadData();
  161. // show/hide buttons
  162. btPrev.Visible = true;
  163. btNext.Visible = true;
  164. btFinish.Visible = false;
  165. btPrevTop.Visible = true;
  166. btNextTop.Visible = true;
  167. if (CurrentStepID < 2) {
  168. btPrev.Visible = false;
  169. btPrevTop.Visible = false;
  170. }
  171. if (CurrentStepID == MaxStep) {
  172. btNext.Visible = false;
  173. btFinish.Visible = true;
  174. btNextTop.Visible = false;
  175. }
  176. else if (CurrentStepID > MaxStep) {
  177. btNext.Visible = false;
  178. btFinish.Visible = false;
  179. btPrev .Visible = false;
  180. btNextTop.Visible = false;
  181. btPrevTop.Visible = false;
  182. }
  183. // init navigation buttons
  184. //InitNavigationButtons();
  185. }
  186. protected void btPrev_Click(object sender, EventArgs e)
  187. {
  188. CurrentStepID--;
  189. // redirect to new step
  190. Response.Redirect(Page.ResolveUrl(SM.EM.Rewrite.EmenikUserSettingsUrlByStep(em_user.PAGE_NAME, CurrentStepID)));
  191. //LoadStep();
  192. }
  193. protected void btNext_Click(object sender, EventArgs e)
  194. {
  195. // if not valid, then don't proceed
  196. if (!CurrentStep.Validate()){
  197. SetError();
  198. return;
  199. }
  200. // save step data
  201. CurrentStep.SaveData(CurrentStepID);
  202. CurrentStepID++;
  203. // redirect to new step
  204. Response.Redirect( Page.ResolveUrl(SM.EM.Rewrite.EmenikUserSettingsUrlByStep(em_user.PAGE_NAME, CurrentStepID )));
  205. //LoadStep();
  206. }
  207. protected void btFinish_Click(object sender, EventArgs e)
  208. {
  209. // if not valid, then don't proceed
  210. if (!CurrentStep.Validate())
  211. {
  212. SetError();
  213. return;
  214. }
  215. // set user active (finished wizard) before save - if redirect on save
  216. //EM_USER.UpdateActiveUser(em_user.UserId, true);
  217. // save step data
  218. CurrentStep.SaveData(CurrentStepID+1);
  219. // go to finish step
  220. CurrentStepID++;
  221. LoadStep();
  222. }
  223. protected void btSave_Click(object sender, EventArgs e)
  224. {
  225. // if is demo, can't save
  226. //if (!CanSave)
  227. //{
  228. // SetError("Nimate pravic za spreminjanje podatkov");
  229. // return;
  230. //}
  231. // if not valid, then don't proceed
  232. if (!CurrentStep.Validate())
  233. {
  234. SetError();
  235. return;
  236. }
  237. // save step data
  238. CurrentStep.SaveData(CurrentStepID);
  239. }
  240. protected void SetError() {
  241. SetError(CurrentStep.ErrorText);
  242. }
  243. public void SetError(string msg)
  244. {
  245. if (string.IsNullOrEmpty(msg))
  246. msg = "Napaka pri shranjevanju. Prosim vnesite pravilne podatke. ";
  247. divError.Visible = true;
  248. litError.Text = msg;
  249. }
  250. protected string RenderClass( int i) {
  251. string ret = "";
  252. // set class
  253. if (em_user.STEPS_DONE + 1 < i)
  254. ret = "btNavDis" + i.ToString();
  255. else if (i == CurrentStepID)
  256. ret = "btNavOn" + i.ToString();
  257. else
  258. ret = "btNav" + i.ToString();
  259. return ret;
  260. }
  261. protected string RenderHref(int i)
  262. {
  263. string ret = "";
  264. // disable buttons that are not allowed yet
  265. if (em_user.STEPS_DONE + 1 < i)
  266. ret = "";
  267. else
  268. ret = "href=\"" + Page.ResolveUrl( SM.EM.Rewrite.EmenikUserSettingsUrlByStep(em_user.PAGE_NAME,i)) + "\"";
  269. return ret;
  270. }
  271. protected string RenderClick(int i)
  272. {
  273. string ret = "";
  274. // disable buttons that are not allowed yet
  275. if (em_user.STEPS_DONE + 1 < i)
  276. ret = "";
  277. else
  278. switch (i)
  279. {
  280. case 1:
  281. ret = "highlight('#main')";
  282. break;
  283. case 2:
  284. ret = "highlight('#cLang a')";
  285. break;
  286. case 3:
  287. ret = "highlight('#cMenu a')";
  288. break;
  289. case 4:
  290. ret = "highlight('#cHeader img, #cLogo img')";
  291. break;
  292. case 5:
  293. ret = "highlight('#main')";
  294. break;
  295. case 6:
  296. ret = "highlight('#footer')";
  297. break;
  298. }
  299. return ret;
  300. }
  301. //protected void InitNavigationButtons() {
  302. // for (int i = 1; i <= MaxStep; i++) {
  303. // LinkButton btNav = (LinkButton)divNavCenter.FindControl("btNav" + i.ToString());
  304. // if (btNav != null) {
  305. // // disable buttons that are not allowed yet
  306. // if (em_user.STEPS_DONE + 1 < i)
  307. // // if (this.Profile.StepsDone + 1 < i)
  308. // {
  309. // btNav.Enabled = false;
  310. // btNav.CssClass = "btNavDis" + i.ToString();
  311. // }
  312. // else
  313. // {
  314. // btNav.Enabled = true;
  315. // // select current step
  316. // if (i == CurrentStepID )
  317. // btNav.CssClass = "btNavOn" + i.ToString();
  318. // else
  319. // btNav.CssClass = "btNav" + i.ToString();
  320. // }
  321. // }
  322. // }
  323. //}
  324. }