Jquery Mobile GUI Crashes on Ajax Refresh - jquery-ui

I have a page which builded with jquery mobile and play framework.
It's refreshing some part of itself for retrive data. But my button styles are losing when it refreshed. What can i do?
<div id="thread" class="container_12">
<div class="grid_6">
#{list items:servs, as:'serving'}
<div class="grid_2">
${serving.item.title}
</div>
<div class="grid_2"><h2> ${serving.amount} </h2></div>
<div class="grid_2"><h2> Masa - ${serving.dtableID} </h2></div>
#{/list}
</div>
<div class="grid_6">
#{list events}
#{if _.type == '1'}
<div class="message ${_.tableID == tableID ? 'you' : ''}">
<h2>${_.tableID} Numaralı Masa</h2>
<p>
Garson çağırdı!
</p>
</div>
#{/if}
#{if _.type == '2'}
<div class="message ${_.tableID == tableID ? 'you' : ''}">
<h2>${_.tableID} Numaralı Masa</h2>
<p>
Hesap istedi!
</p>
</div>
#{/if}
#{if _.type == 'join'}
<div class="message notice">
<h2></h2>
<p>
${_.tableID} numaralı masa girdi!
</p>
</div>
#{/if}
#{if _.type == 'leave'}
<div class="message notice">
<h2></h2>
<p>
${_.tableID} numaralı masa Çıktı!
</p>
</div>
#{/if}
#{/list}
</div>
</div>
<div class="clear"></div>
#{get 'moreScripts' /}
<script type="text/javascript" charset="${_response_encoding}">
// Reload the whole messages panel
var refresh = function() {
$('#thread').load('#{room()} #thread', function() {
})
}
// Call refresh every 5 seconds
setInterval(refresh, 5000)
</script>
In above it includes the javascript refresh codes.

I resolved my problem with adding
$('#thread').trigger('create');

Related

Partial view is not loading in pagecontainer class on click of Basic Info button in asp.net MVC

Here is my code for design this UI
UI here
<div>
<div class="py-2 h4">
Profile Setting Page
</div>
<div class="row">
<div class="col-sm-2 bg-light py-2">
<div class="p-1" >
Basic Info
</div>
</div>
<div class="col-sm-10 bg-light">
<div class="pagecontainer">
<div class="d-flex justify-content-center align-items-center m-4">
<h1 class="display-3">Welcome to Settings</h1>
</div>
</div>
</div>
</div>
</div>
in the above code, use the 'pagecontainer' class for loading the partial UI. After clicking on 'Basic Info' button, partial view page loading but doesn't insert in pagecontainer class , it is refreshed and shows on same page like this,Image here
My JavaScript code is as,
//basic info
$("#basicinfo").click(function (e) {
e.preventDefault();
var href = $(this).attr("href");
$.get(href, function (data, status) {
$('.pagecontainer').html(data);
});
});
Try this way.
In your HTML just replace anchor tag href attribute with this javascript:void(0);
add one attribute it's up to whatever want you can add.
Like example I've added the data-url="/Profile/BasicInfo"
<div>
<div class="py-2 h4">
Profile Setting Page
</div>
<div class="row">
<div class="col-sm-2 bg-light py-2">
<div class="p-1" >
Basic Info
</div>
</div>
<div class="col-sm-10 bg-light">
<div class="pagecontainer">
<div class="d-flex justify-content-center align-items-center m-4">
<h1 class="display-3">Welcome to Settings</h1>
</div>
</div>
</div>
</div>
</div>
Jquery
//basic info
$("#basicinfo").click(function (e) {
e.preventDefault();
var href = $(this).data("url");
$.get(href, function (data, status) {
$('.pagecontainer').html(data);
});
});
Please remove href from tag a:
<div class="p-1" >
<a class="btn btn-dark w-100" id="basicinfo">Basic Info</a>
</div>
and in the javascript:
$("#basicinfo").click(function (e) {
e.preventDefault();
$.get("/Profile/BasicInfo", function (data, status) {
$('.pagecontainer').html(data);
});
});

AntD Carousel only displays the first div in it

This is the Carousel gist from my code.
<Carousel arrows={true}>
<div className='new-offers-item'>
<div className='new-offers-item-bg'>
<div className='new-offers-item-rent-tag'>TEXT HERE</div>
<div className='new-offers-item-favourite' />
<div className='new-offers-posted-at'>ANOTHER TEXT HERE, 10:44</div>
</div>
<div className='new-offers-item-location-rate'>
<div className='new-offers-item-location'>street address, 5<br />CC Espiral,<br /> 1 floor</div>
<div className='new-offers-item-rate'>
<div>
<span className='new-offers-item-rate-value'>240 000 </span>
<span className='new-offers-item-rate-unit'>abcd.</span>
</div>
</div>
</div>
<div className='new-offers-item-city-street'>
<span>City</span>
<span> </span>
<span>Address1</span>
</div>
<div className='new-offers-item-description'>
<div className='new-offers-item-description-row'>
<div className='new-offers-item-description-row-space'>
<div className='new-offers-item-description-row-space-division'>
<div>
<img src={sqM} />
</div>
<p>
<span>Total</span>
<span>600</span>
</p>
<p>
<span> </span>
<span className='span-divider'>/</span>
</p>
<p>
<span>Sale</span>
<span>300</span>
</p>
</div>
<div className='new-offers-item-description-row-metre-rate'>
<p>
<span>Per meter</span>
</p>
<p>
<span>6 700 </span>
<span>unit<sup>2</sup></span>
</p>
</div>
</div>
<div className='new-offers-item-description-row'>
<div className='new-offers-item-description-row-space'>
<div className='new-offers-item-description-row-space-division'>
<div className='new-offers-item-description-second'>
<img src={bldgIcon} />
<span className='item-type'>Торговый центр</span>
</div>
</div>
<div className='new-offers-item-description-row-metre-rate'>
<div className='new-offers-item-description-second'>
<img src={doorsIcon} />
<span className='item-type'>10 floor</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div className='new-offers-item'>
<div className='new-offers-item-bg'>
<div className='new-offers-item-rent-tag'>TEXT HERE</div>
<div className='new-offers-item-favourite' />
<div className='new-offers-posted-at'>ANOTHER TEXT HERE, 10:44</div>
</div>
<div className='new-offers-item-location-rate'>
<div className='new-offers-item-location'>street address, 5<br />CC Espiral,<br /> 1 floor</div>
<div className='new-offers-item-rate'>
<div>
<span className='new-offers-item-rate-value'>240 000 </span>
<span className='new-offers-item-rate-unit'>abcd.</span>
</div>
</div>
</div>
<div className='new-offers-item-city-street'>
<span>City</span>
<span> </span>
<span>Address1</span>
</div>
<div className='new-offers-item-description'>
<div className='new-offers-item-description-row'>
<div className='new-offers-item-description-row-space'>
<div className='new-offers-item-description-row-space-division'>
<div>
<img src={sqM} />
</div>
<p>
<span>Total</span>
<span>600</span>
</p>
<p>
<span> </span>
<span className='span-divider'>/</span>
</p>
<p>
<span>Sale</span>
<span>300</span>
</p>
</div>
<div className='new-offers-item-description-row-metre-rate'>
<p>
<span>Per meter</span>
</p>
<p>
<span>6 700 </span>
<span>unit<sup>2</sup></span>
</p>
</div>
</div>
<div className='new-offers-item-description-row'>
<div className='new-offers-item-description-row-space'>
<div className='new-offers-item-description-row-space-division'>
<div className='new-offers-item-description-second'>
<img src={bldgIcon} />
<span className='item-type'>Торговый центр</span>
</div>
</div>
<div className='new-offers-item-description-row-metre-rate'>
<div className='new-offers-item-description-second'>
<img src={doorsIcon} />
<span className='item-type'>7 floor</span>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</Carousel>
Only the first div.new-offers-item gets displayed.
How do I get the second one and others to display?
Since antd using slick slider for their Carousel, you should refer to their API
To be more precise, you will need to use prop: "slidesToShow" in order to show the numbers of slides that you need.
For Example:
const settings = {
dots: true,
slidesToShow: 3,
slidesToScroll: 1
};
It is as designed. This shows the first item as current and to move to the next item, you can click on the navigation.
You can set the background of new-offers-item to see the navigation. You can refer to the example here:
https://codesandbox.io/s/nn44020wzp
This is the soultion that produced the desired outcome. Added 2 more
.new-offers-item.
const carouselSettings = {
arrows: true,
slidesToShow: 3,
slidesToScroll: 1
};
Then add the const carouselSettings to the Carousel component:
<Carousel {...carouselSettings}>...</Carousel>.
Based on react-slick docs and playground at https://github.com/akiran/react-slick.
AntD Carousel doesn't place the arrows to the html layout when the number of items inside the Carousel equals to slidesToShow. The arrows which are buttons are transparent by default you'd need to put an arrow image inside the buttons. The css classes for buttons are .ant-carousel .slick-prev and .ant-carousel .slick-next.

How do I properly handle submit events in Vue + Rails?

I'm learning Rails, Vue and JS and I've got a question on the proper handling of submit buttons on Rails using Vue component to validate it. I'm using mdbootstrap for the styles.
I built a form wizard which uses vee-validate for validating the fields and in some forms I want to perform some server side operations too (eg.: validate exact address with geocoding). I'm currently facing basically three issues.
Although I added a v-clock directive, I'm still seeing a little
flicker every time the form wizard component gets loaded (eg.: page
refresh).
I had to workaround the Rails automatic data-disable-with handling to get it working, and it looks not optimal to me, and I'd like to know if there's a better way to deal with it (I had to disable the submit event propagation and prevent default and do the disabling/enabling manually otherwise the handler from Rails UJS will receive it afterwards and disable the button forever).
Although the button gets enabled again, it gets brighter every time I click on it if validation fails (some handler from mdbootstrap maybe?). It happens only after I click on refresh button on the browser and I've noticed the following div is created after each click followed by an error during form validation, causing the button to become "brighter" as in a accumulated "disabled effect":
Anyone has ideas on how these issues could be solved? Thanks!
new.html.erb:
<div id="stepper">
<div v-cloak>
<transition-group name="fade">
<div class="d-none d-lg-block" key="progress_bar">
<%= render 'forms/progress_bar' %>
</div>
<div id="step1" v-if="step === 1" key="step1">
<%= render 'forms/description' %>
</div>
<div id="step2" v-if="step === 2" key="step2">
<%= render 'forms/address' %>
</div>
</transition-group>
</div>
</div>
_description.html.erb:
<template>
<form
id="description-form"
data-vv-scope="description-form"
novalidate="true"
#submit.prevent="next('description-form', $event)">
<div class="row mb-5">
<div class="col-lg-12 col-md-12">
<div class="container">
<div class="row" id="step-1">
<div class="col-lg-6">
<div class="max-height-80">
<div class="mb-4">
<h4><%= t(:'step1.title') %></h4>
</div>
<div class="form-group">
<label
for="name"
class="control-label">
<%= t(:'step1.label.name') %>
</label>
<input
id="name"
name="name"
type="text"
class="form-control"
placeholder="<%= t(:'step1.input.name') %>"
v-validate="'required'"
v-model="name"
:class="{ 'is-invalid': errors.has('name','description-form') }"
required/>
<div
v-if="errors.has('name','description-form')"
class="invalid-feedback">
<%= t(:'name.required') %>
</div>
</div>
<div class="form-group">
<label
for="description"
class="control-label">
<%= t(:'step1.label.description') %>
</label>
<textarea
id="description"
name="description"
class="form-control"
placeholder="<%= t(:'step1.input.description') %>"
rows="11"
v-validate="'required'"
v-model="description"
:class="{ 'is-invalid': errors.has('description','description-form') }"
required>
</textarea>
<div
v-if="errors.has('description','description-form')"
class="invalid-feedback">
<%= t(:'description.required') %>
</div>
</div>
</div>
<footer class="page-footer white fixed-bottom d-block d-sm-none z-depth-1" id="footer">
<div class="d-flex justify-content-end">
<button class="btn btn-default pull-right" type="submit" data-remote="true" data-disable-with="<%= wait_spinner %>"><%= t(:'btn.next') %></button>
</div>
</footer>
<div class="d-none d-sm-block">
<div class="d-flex justify-content-end mt-2">
<button class="btn btn-default pull-right" type="submit" data-remote="true" data-disable-with="<%= wait_spinner %>"><%= t(:'btn.next') %></button>
</div>
</div>
</div>
<div class="col-lg-2"></div>
<div class="col-lg-4 d-none d-lg-block mt-lg-5">
</div>
</div>
</div>
</div>
</div>
</form>
</template>
stepper.js
var element = document.getElementById("stepper");
if (element != null) {
Vue.use(VeeValidate);
Vue.use(VueResource);
Vue.http.headers.common['X-CSRF-Token'] = document.querySelector('meta[name="csrf-token"]').getAttribute('content');
const stepper = new Vue({
el: element,
data() {
return {
/**
* The step number (starting from 1).
* #type {Integer}
*/
step:1,
name:null,
description:null
}
}
},
methods: {
/**
* Goes back to previous stepp
*/
prev() {
this.step--;
},
/**
* Triggers validation of current step and goes to the
* next step if validation succeeds
* #param {String} scope The step scope used for validation.
* #param {Object} Event that triggered the next step (form submit)
*/
next(scope, event) {
if (event != undefined) {
event.stopImmediatePropagation();
event.preventDefault();
event.stopPropagation();
}
const form = event.currentTarget;
$("button[type=submit]",form).each(function() {
Rails.disableElement(this);
});
this.validateFields(scope, event);
},
validateFields(scope, event) {
this.$validator.validateAll(scope).then(function (valid) {
this.postFieldsValidation(valid, event);
}.bind(this));
},
postFieldsValidation(valid, event) {
if (valid) {
stepper.step++;
}
const form = event.currentTarget;
$("button[type=submit]",form).each(function() {
Rails.enableElement(this);
});
},
handleError(error) {
alert(error)
},
submit() {
}
}
});
}
* edit *
for #3, I'm using a workaround for removing the div with waves-ripple class inside my button when re-enabling elements on the form.
$("div").remove("button .waves-ripple");
however, it would be nice to know the root cause for it.

Unobtrusive ajax - View being fully replaced by partial view

I have searched multiple examples and have tried several things to get this to work properly. Currently I am trying to get a div to be replaced by using an Ajax.HtmlLink pointing to a PartialViewResult method.
I have tried
Checking network and javascript consoles to make sure my .js are all being loaded
Unbundling the stock jqueryval bundle and including the scripts manually
Double checked I didn't have another DOM element with the same update target Id
Checked my ajaxoptions to ensure everything was correct
I know unobtrusive is working because my Email duplicate remote validation check is working.
I will now show some screen shots of my debugging process
Here is what the page looks like prior to ajax load
My goal is to replace the container on the right that is currently holding email, name, and zipcode values
Here is the result##
This is what my view code looks like
<div class="container">
<br />
<br />
<div class="row">
<div class="col-sm-3">
<div class="sidebar-account">
<div class="row ">
<div class="col-lg-12">
<div class="panel panel-default">
<div class="panel-heading">My Account</div>
<div class="panel-body">
<ul class="nav">
<li>
<a class="active" href="account_dashboard.html">Me</a>
</li>
<li>
#Ajax.ActionLink("Alerts", "ManageAlerts", null, new AjaxOptions
{
HttpMethod = "GET",
UpdateTargetId = "ajax-update",
InsertionMode = InsertionMode.Replace,
OnBegin = "ajaxBegin",
OnFailure = "ajaxFail",
OnComplete = "ajaxComplete",
OnSuccess = "ajaxSuccess"
}, new { #class = "active" })
</li>
<li>
<a class="active" href="account_account.html">Linked Accounts</a>
</li>
<li>
<a class="active" href="account_ads.html">Manage ads</a>
</li>
<li>
<a class="active" href="account_ad_create.html">Create new ad</a>
</li>
</ul>
</div>
</div>
</div>
</div>
<div class="row hidden-xs">
<div class="col-lg-12">
<div class="well">
<div class="row ">
<div class="col-lg-3">
<img src="css/images/icons/Crest.png" width="45" />
</div>
<div class="col-lg-9">
<h4 style="margin-top: 0">Increase visibility</h4>
<p>Don't forget to 'bump' your listing to gain more visibility</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-9">
<div id="ajax-update">
#Html.Partial("_ManageUserAccount", Model)
</div>
</div>
<br />
</div>
Partial View Code##
<div id="fadein-div">
<div class="panel panel-default">
<div class="panel-heading">#Model.Username : Alerts</div>
<div class="panel-body">
<br />
<div class="row">
<div class="col-sm-12">
<p><span style="font-weight:bold">Change your alerts!</span></p>
</div>
</div>
<br />
#using (Html.BeginForm("ManageAlerts", "Account", FormMethod.Post, new { #class = "form-vertical", role = "form" }))
{
#Html.AntiForgeryToken()
<fieldset>
<div class="row">
<div class="col-sm-12 ">
<div class="form-group">
<div class="row">
<div class="col-sm-2">
<div class="checkbox">
#Html.CheckBoxFor(P => P.EmailAlertsOn) #Html.LabelFor(P => P.EmailAlertsOn)
</div>
</div>
</div>
</div>
<div id="control-div">
<div class="form-group">
<h3>Email alert options</h3>
</div>
<div class="form-group">
<div class="checkbox">
#Html.CheckBoxFor(P => P.EmailOnNewMessageOn) #Html.LabelFor(P => P.EmailOnNewMessageOn)
</div>
<div class="text-danger">
#Html.ValidationMessageFor(P => P.EmailOnNewMessageOn)
</div>
</div>
<div class="form-group">
<div class="checkbox">
#Html.CheckBoxFor(P => P.EmailOnReplyOn) #Html.LabelFor(P => P.EmailOnReplyOn)
</div>
<div class="text-danger">
#Html.ValidationMessageFor(P => P.EmailOnReplyOn)
</div>
</div>
<div class="form-group">
<div class="checkbox">
#Html.CheckBoxFor(P => P.EmailOnAccountUpdateOn) #Html.LabelFor(P => P.EmailOnAccountUpdateOn)
</div>
<div class="text-danger">
#Html.ValidationMessageFor(P => P.EmailOnAccountUpdateOn)
</div>
</div>
</div>
<br />
<button type="submit" class="btn btn-primary">Save details</button>
</div>
</div>
</fieldset>
}
</div>
</div>
And finally, controller code##
[HttpGet]
public PartialViewResult ManageAlerts()
{
var user = UserManager.FindById(Guid.Parse(User.Identity.GetUserId()));
Models.Account.ManageAlertsViewModel vm = new ManageAlertsViewModel();
vm.Username = user.UserName;
vm.EmailAlertsOn = user.EmailAlertsOn;
vm.EmailOnAccountUpdateOn = user.EmailOnAccountUpdateOn;
vm.EmailOnNewMessageOn = user.EmailOnNewMessageOn;
vm.EmailOnReplyOn = user.EmailOnReplyOn;
return PartialView("_ManageAlerts", vm);
}
<!-- js library -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.0/jquery-ui.min.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/bootstrap.min.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/jquery.icheck.min.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/waypoints.min.js"></script>
<!-- authenty js -->
<script src="~/Themes/Authenticity%20Forms/Authenty/js/authenty.js"></script>
<!-- preview scripts -->
<script src="~/Themes/Authenticity%20Forms/Authenty/js/preview/jquery.malihu.PageScroll2id.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/preview/jquery.address-1.6.min.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/preview/scrollTo.min.js"></script>
<script src="~/Themes/Authenticity%20Forms/Authenty/js/preview/init.js"></script>
#Scripts.Render("~/bundles/jqueryval")

Session time outs redirects within the panel in mvc 2

i am working in the sample mvc 2 application. in that i am handled the session timeout in the web.config the following code is this.
<authentication mode="Forms">
<forms loginUrl="~/Account/LogOn" cookieless="UseCookies" name="FormAuthentication" timeout="1"/>
</authentication>
this is code is working fine for the screens when i kept the screens in the idle....
but my issue is in one particular screen i having eight tabs in one panel if the session login page is redirected,after the idle stage, if i click link button in the tab it is redirected login page inside the tab panel not redirected to the login page.all the tabs are been done with usercontrols see for reference....
You need to have the login page break out of any framesets, so in the head of the login page add the following JavaScript:
<script type="text/javascript">
if (parent.frames.length > 0) {
top.location.href = document.location.href;
}
</script>
<%# Master Language="C#" AutoEventWireup="true" CodeBehind="LogOn.Master.cs" Inherits="System.Web.Mvc.ViewMasterPage" %>
<head runat="server">
<asp:ContentPlaceHolder ID="head" runat="server">
</asp:ContentPlaceHolder>
<script src="../../Scripts/jquery-1.3.2.min.js" type="text/javascript"></script>
<link href="../../App_Themes/PropelSkin/Stylesheet1.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="../../Scripts/thickbox-min.js"></script>
<link rel="Stylesheet" href="../../Css/Thickbox.css" type="text/css" />
<script type="text/javascript">
if (parent.frames.length > 0) {
top.location.replace(document.location);
}
</script>
<asp:Content ID="Content2" ContentPlaceHolderID="MainContent" runat="server">
<script type="text/javascript">
$(function () {
var tabContainers = $('div.tabs > div');
$('div.tabs ul.tabNavigation a').click(function () {
tabContainers.hide().filter(this.hash).show();
$('div.tabs ul.tabNavigation a').removeClass('selected');
$(this).addClass('selected');
return false;
}).filter(':first').click();
});
</script>
<script src="../../Scripts/ajaxfileupload.js" type="text/javascript"></script>
<div class="content-admin">
<%
EmployeeDetails employeeDetails = null;
if (ViewData["EmployeeDetails"] != null)
employeeDetails = (EmployeeDetails)ViewData["EmployeeDetails"];
EmployeePersonalDetails personalDetails = null;
if (ViewData["PersonalDetails"] != null)
personalDetails = (EmployeePersonalDetails)ViewData["PersonalDetails"];
string entityName = new EmployeeDetails().EntityIdentifier;
if (employeeDetails != null)
{ %>
<div class="page-header">
<h1>
<%=employeeDetails.FirstName%>'s Profile
</h1>
<%-- column.ForColumn(col => Replace().SetFieldIdentifierAndPermissions("", PrivilegeConstant.DeleteEmployee).Named("Deactivate").DoNotEncode().Attributes(x => new Hash(#style => "font-weight:normal"));--%>
<table class="form-search" cellpadding="0" cellspacing="0">
<tr>
<td class="gridbg">
</td>
<td class="searchbg">
<table>
<tr>
<%
if (!string.IsNullOrEmpty(employeeDetails.UserId))
{
if (UserIdentity.HasPrivilege(CelloSaaS.ServiceContracts.AccessControlManagement.PrivilegeConstants.AddUserRole) &&
UserIdentity.HasPrivilege(CelloSaaS.ServiceContracts.AccessControlManagement.PrivilegeConstants.DeleteUserRole)
)
{
%>
<td>
<a class="thickbox" href="AddRoleSettings?width=375&height=245&userId=<%=employeeDetails.UserId %>&employeeId=<%=employeeDetails.Identifier %>"
title="Assign Roles" alt="Assign Roles">
<img src="../../App_Themes/PropelSkin/btn-assignroles.png" alt="Assign Roles" /></a>
</td>
<%}
} %>
<td>
<%--<div class="imageAlign">--%>
<a href="../History/History?entityName=<% =entityName %>&entityReferenceId=<%=employeeDetails.Identifier %>"
title="View History" alt="View History">
<img src="../../App_Themes/PropelSkin/btn-viewhistory.png" alt="View History" /></a>
<%--</div>--%>
</td>
<% if (UserIdentity.HasPrivilege(PrivilegeConstant.DeleteEmployee))
{ %>
<td>
<a href="DeleteEmployeeDetails?employeeId=<%=employeeDetails.Identifier %>" title="Deactivate Employee"
alt="Deactivate Employee">
<img id="deactivateemp" src="../../App_Themes/PropelSkin/btn-deactivate.png" alt="Deactivate Employee" /></a>
</td>
<%} %>
<% if (UserIdentity.HasPrivilege(PrivilegeConstant.ViewEmployee))
{ %>
<td>
<a href="EmployeeList">
<img src="<%= this.ResolveClientUrl("../../App_Themes/PropelSkin/btn-back.png")%>"
alt="Back To Employee List" /></a>
</td>
<%} %>
</tr>
</table>
</td>
</tr>
</table>
</div>
<div class="profile-content-cntr">
<div class="profile-content-left">
<div class="profile-header">
<h1>
Summary</h1>
</div>
</div>
<div class="profile-content-right">
<div class="tabs">
<ul class="tabNavigation">
<li><span>Organization</span></li>
<li><span>Personal</span></li>
<li><span>Education</span></li>
<li><span>Experience</span></li>
<li><a href="#EmployeeCoOrganizationDetails" title="CoOrganizationDetails"><span>Co-Organization</span>
</a></li>
<li><span>Skills</span></li>
<li><span>Documents</span></li>
<%-- <li>Skills</li>
<li>Projects</li>--%>
<%-- <li>Leaves</li>--%>
<%--<li>Payroll</li>--%>
</ul>
<a href="#" title="Next" class="imageNaviation">
<img src="../../App_Themes/PropelSkin/arrow-right.png" alt="Next" />
</a><a href="#" title="Previous" class="imageNaviation">
<img src="../../App_Themes/PropelSkin/arrow-left.png" alt="Previous" /></a>
</div>
</div>
</div>
<div class="form-content">
<div class="content-left">
<div id="EmployeeBasicDetails" class="profile-view">
<% Html.RenderPartial("ManageEmployeeBasicDetails"); %>
</div>
</div>
<div class="content-right">
<div class="right-panel">
<div class="profile-tabs">
<div class="tabs">
<div id="EmployeeDetails">
<% Html.RenderPartial("ManageEmployeeDetails"); %>
</div>
<div id="ManagePersonalDetails">
<% Html.RenderPartial("ManagePersonalDetails"); %></div>
<div id="EmployeeEducationDetails">
<% Html.RenderPartial("ManageEducationDetails"); %></div>
<div id="EmployeeEmploymentHistory">
<% Html.RenderPartial("ManageEmploymentHistory"); %></div>
<div id="EmployeeCoOrganizationDetails">
<% Html.RenderPartial("ManageCoOrganizationDetails"); %></div>
<div id="EmployeeSkillSet">
<% Html.RenderPartial("ManageEmployeeSkillSet"); %>
</div>
<div id="EmployeeDocuments">
<% Html.RenderPartial("ManageEmployeeDocuments"); %>
</div>
<%--<div id="Skills">
<% Html.RenderPartial("Skills"); %>
</div>
<div id="Skills">
<% Html.RenderPartial("Skills"); %>
</div>
<div id="Skills">
<% Html.RenderPartial("Skills"); %>
</div>--%>
<%-- </div>--%>
</div>
</div>
</div>
<%}
else
{ %>
<div>
<div class="profile-view">
<div class="profile-det">
<div class="notification-bg">
<div id="msg-failure">
<div class="header">
<img src="../../App_Themes/PropelSkin/fail-top1.gif" alt="" class="left" />
<img src="../../App_Themes/PropelSkin/fail-top2.gif" alt="" class="right" />
</div>
<div class="content">
<%=Html.CelloValidationMessage("EmployeeProfileMessage", new { #class = "exception" })%>
</div>
<div class="footer">
<img src="../../App_Themes/PropelSkin/fail-btm1.gif" alt="" class="left" />
<img src="../../App_Themes/PropelSkin/fail-btm2.gif" alt="" class="right" />
</div>
</div>
</div>
</div>
</div>
<%} %>
</div>
</div>
</div>
</div>

Resources