在web视图windows phone中发布请求-使用C#

在web视图windows phone中发布请求-使用C#,c#,post,webview,windows-phone-8.1,C#,Post,Webview,Windows Phone 8.1,我正试图实现同样的目标,但调用InvokeScript方法时出现异常,请帮助。我使用这个链接()来编写代码,这是我的JV webview.NavigateToString(@"<html> <head> <script type='text/javascript'> function doSomething(userIdValue, sessionIdValue) {

我正试图实现同样的目标,但调用InvokeScript方法时出现异常,请帮助。我使用这个链接()来编写代码,这是我的JV

     webview.NavigateToString(@"<html>
    <head>
        <script type='text/javascript'>
            function doSomething(userIdValue, sessionIdValue) 
            { 
                document.getElementById('Username').value = userIdValue;
                document.getElementById('Password').value = sessionIdValue;
                document.getElementById('myForm').submit();
                return 'Hello World!'; 
            }
        </script>
    </head>
    <body>
        <form id='myForm' action='http://integr-dev-ma.test.plano/myplano/Account/Login' method='post'>
            <input type='hidden' id='ext-element-18' name='Username' />
            <input type='hidden' id='ext-element-24' name='Password' />
        </form>
    </body>
</html>");

我解决了上面的问题,Javascript有问题,下面的代码中的ID写错了

document.getElementById('Username').value = userIdValue;
 document.getElementById('Password').value = sessionIdValue;
用户名和密码应为“ext-element-18”和“ext-element-18”。更正javascript删除了异常。现在,这个请求的基本目的是登录webview

我的另一个团队已经开发了这个Web部件,他们使用了sanchatouch框架,因此在登录页面的HTML代码中没有
标记,因此提交此文件不起作用。我没有登录,我发布的登录页面的来源,可能有人可以在这方面提供帮助。当用户单击login按钮时,通常会调用loginfunction,您可以在代码中查找,但无论如何,我需要执行post请求以自动登录

<!DOCTYPE html>
<html>
<head>
    <!-- General Meta things -->
    <meta charset="utf-8" />
    <title>Login -  myplano</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">


    <!--<link href="/myplano/Content/Stylesheets/myplano.css" rel="stylesheet"/>
<link href="/myplano/Scripts/Sencha/resources/css/sencha-touch.css" rel="stylesheet"/>
-->
    <link href="/myplano/Scripts/Sencha/resources/css/cupertino.css" rel="stylesheet"/>

    <link href="/myplano/Content/Stylesheets/myplano.css" rel="stylesheet"/>



    <!-- Apple Meta things -->
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="white-translucent" />
    <link rel="apple-touch-icon" sizes="144x144" href="/myplano/Content/Images/App_Icons/Apple/myplano144.png">
    <link rel="apple-touch-icon" sizes="57x57" href="/myplano/Content/Images/App_Icons/Apple/myplano57.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/myplano/Content/Images/App_Icons/Apple/myplano72.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/myplano/Content/Images/App_Icons/Apple/myplano114.png">

    <link rel="apple-touch-startup-image" href="/myplano/Content/Images/App_Icons/Apple/apple_startup.png">
    <!-- Android Meta things -->
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="theme-color" content="#384093">
    <link rel="icon" sizes=”192×192″ href="/myplano/Content/Images/App_Icons/Android/myplano192.png">

    <!-- Windows meta things -->
    <!-- TODO: Icon size needs to be 310x310 -->
    <meta name="application-name" content="myplano" />
    <meta name="msapplication-TileColor" content="#384093" />
    <meta name="msapplication-square70x70logo" content="/myplano/Content/Images/App_Icons/Windows/tiny.png" />
    <meta name="msapplication-square150x150logo" content="/myplano/Content/Images/App_Icons/Windows/square.png" />
    <meta name="msapplication-wide310x150logo" content="/myplano/Content/Images/App_Icons/Windows/wide.png" />
    <meta name="msapplication-square310x310logo" content="/myplano/Content/Images/App_Icons/Windows/large.png" />


    <meta name='msapplication-navbutton-color' content='#384093' />
    <meta name='msapplication-tooltip' content='start myplano' />
    <meta name="msapplication-window" content="width=800;height=1024;" />
    <!--<meta name='msapplication-starturl' content='http//domain.de' />-->

    <!-- This script is required for the swipe calendar-->
    <!--<script type="text/javascript" src="/myplano/Scripts/myplano/momentjs/moment.js"></script>
        -->
</head>
    <body>
        <script type="text/javascript">
            var baseUrl = "/myplano/";
        </script>

        <script src="/myplano/Scripts/Sencha/sencha-touch-all.js"></script>
<script src="/myplano/Scripts/Sencha/src/ux/picker/DateTime.js"></script>

<script src="/myplano/Scripts/Resources/Resource-de.js"></script>


        <script type="text/javascript">

            Ext.Date.defaultDateFormat = "d.m.Y";
            Ext.Date.defaultTimeFormat = "H:i";
            Ext.Date.defaultTimeHMSFormat = "H:i:s";
            Ext.Date.defaultFullDateTimeFormat = "d.m.Y H:i:s";
var localLanguage = 'en';
        </script>

        <script src="/myplano/Scripts/myplano/momentjs/moment.js"></script>
<script src="/myplano/Scripts/Controls/Timefield.js"></script>
<script src="/myplano/Scripts/Controls/DateTimePicker.js"></script>
<script src="/myplano/Scripts/myplano/Base.js"></script>
<script src="/myplano/Scripts/myplano/MainMenu.js"></script>
<script src="/myplano/Scripts/myplano/Views/AccountValues.js"></script>
<script src="/myplano/Scripts/myplano/Views/Profile.js"></script>
<script src="/myplano/Scripts/myplano/Views/RequestList.js"></script>
<script src="/myplano/Scripts/myplano/Views/TimeStamps.js"></script>
<script src="/myplano/Scripts/myplano/Views/Calendars/DayCalendar.js"></script>
<script src="/myplano/Scripts/myplano/Views/Calendars/MonthCalendar.js"></script>
<script src="/myplano/Scripts/myplano/Views/Calendars/WeekCalendar.js"></script>
<script src="/myplano/Scripts/myplano/Views/Calendars/GroupCalendar.js"></script>
<script src="/myplano/Scripts/myplano/Views/Calendars/Calendar_Shared.js"></script>
<script src="/myplano/Scripts/myplano/Views/Requests/FullDay.js"></script>
<script src="/myplano/Scripts/myplano/Views/Requests/RequestTypeList.js"></script>
<script src="/myplano/Scripts/myplano/Views/Requests/NewRequest.js"></script>
<script src="/myplano/Scripts/myplano/Views/ApproverList.js"></script>
<script src="/myplano/Scripts/myplano/placeholder.js"></script>
<script src="/myplano/Scripts/myplano/util/PaintMonitor.js"></script>
<script src="/myplano/Scripts/myplano/util/SizeMonitor.js"></script>
<script src="/myplano/Scripts/myplano/shared.js"></script>
<script src="/myplano/Scripts/myplano/TransponderUi.js"></script>


        <div>



<script type="text/javascript">

    var userTextfield = new String;

    Ext.setup({

        onReady: function () {
            // create local user model
            Ext.define('LocalUser', {
                extend: 'Ext.data.Model',
                config: {
                    fields: [
                        { name: "id" },
                        { name: "username", type: "string" },
                        { name: "firstname", type: "string" },
                        { name: "lastname", type: "string" },
                        { name: "globalmessage", type: "string" },
                        { name: "employeemessage", type: "string" }
                    ],
                    proxy: {
                        type: 'localstorage',
                        id: 'local-user'
                    }
                }
            });
            var store = Ext.create('Ext.data.Store', {
                model: 'LocalUser'
            });
            store.load();
            var storageCount = store.getAllCount();
            if (storageCount > 0) {
                //console.log(storageCount + " users found");
                var userObject = store.getAt(storageCount - 1);
                var user = userObject.get("username");
                userTextfield = user;
                //console.log("last logged in user was: " + userTextfield);
            }

            //login
            var login = function () {
                var label = form.down("[itemId='signInFailedLabel']");
                var btn = form.down("button");
                label.hide();
                btn.setDisabled(true);
                form.setDisabled(true);
                btn.setText(plano.myplano.Resources.Get("LogingIn"));

                //login
                Ext.Ajax.request({
                    url: plano.Base.ResolveUrl('~/Account/Login'),
                    method: 'POST',
                    params: form.getValues(),
                    success: function (response) {
                        var data = Ext.decode(response.responseText);
                        if (data.error) {
                            label.setHtml(data.error);
                            label.show();

                            form.setValues({
                                Username: "",
                                Password: ""
                            });

                            btn.setText(plano.myplano.Resources.Get("LoginDescription"));
                            btn.setDisabled(false);
                            form.setDisabled(false);
                        }
                        else if (data.success) {
                            var firstName = "";
                            var lastName = "";
                            var globalMessage = "";
                            var employeeMessage = "";

                            //if new password needed
                            if (data.newPasswordNeeded)
                            {
                                location.href = plano.Base.ResolveUrl('~/Account/ResetPassword');
                            };
                            Ext.Ajax.request({
                                url: plano.Base.ResolveUrl("~/Home/getEmployeeName"),
                                success: function (result) {


                                    var resultData = Ext.decode(result.responseText);

                                    console.log(resultData);

                                    console.log("Employee Name");
                                    console.log(resultData.data['FirstName'] + " " + resultData.data['LastName']);

                                    firstName = resultData.data['FirstName'];
                                    lastName = resultData.data['LastName'];

                                    //Store Username
                                    var thisuser = form.down("textfield").getValue();


                                    Ext.Ajax.request({
                                        url: plano.Base.ResolveUrl("~/Home/getWelcomeText"),
                                        success: function (result2)
                                        {
                                            var resultData2 = Ext.decode(result2.responseText);

                                            console.log("WelcomeText");
                                            console.log(resultData2['employeeMessage']);

                                            globalMessage = resultData2['globalMessage'];

                                            if (resultData2['employeeMessage'])
                                            {
                                                employeeMessage = resultData2['employeeMessage'];
                                            }

                                            var store = Ext.create('Ext.data.Store', {
                                                model: "LocalUser"
                                            });
                                            store.load();
                                            store.getProxy().clear();
                                            store.data.clear();
                                            store.add({
                                                username: thisuser,
                                                firstname: firstName,
                                                lastname: lastName,
                                                globalmessage: globalMessage,
                                                employeemessage: employeeMessage
                                            });
                                            store.sync();

                                            location.href = plano.Base.ResolveUrl('~/');

                                        }
                                    });

                                }
                            });


                        }
                    },
                    error: function (errorResponse) {
                        Ext.Msg.alert('Error', 'Login request failed');
                    }
                });
            };

            var form = Ext.create('Ext.form.Panel', {
                fullscreen: true,
                id: 'loginForm',
                scrollable: null,
                baseCls: 'login-form',
                config: {
                    //scrollable: false
                },
                layout: {
                    type: 'vbox',
                    pack: 'center',
                    align: 'center'
                },
                items: [
                {
                    xtype: 'panel',
                    hideAnimation: 'fadeOut',
                    showAnimation: 'fadeIn',
                    itemId: 'myplanoLogo',
                    html: '<img id="logo" class="login-myplano-logo" src="/myplano/Content/Images/Vector/myplano.svg" />' //~/Content/Images/myplano 256x256.png
                }, {
                    xtype: 'fieldset',
                    baseCls: 'login-form',
                    //title: plano.myplano.Resources.Get("LoginTitle"),
                    defaults: {
                        margin: '5px 0',
                        listeners: {
                            action: login
                        }
                    },
                    items: [
                            {
                                xtype: 'panel',
                                html: '<div class="separator-login"></div>'
                            },
                            {
                                xtype: "textfield",
                                clearIcon: false,
                                baseCls: 'login-form',
                                placeHolder: plano.myplano.Resources.Get("UserName"),
                                value: userTextfield,
                                name: "Username",
                                required: true
                            }, {
                                xtype: "passwordfield",
                                clearIcon: false,
                                baseCls: 'login-form',
                                placeHolder: plano.myplano.Resources.Get("Password"),
                                name: "Password",
                                required: true
                            }, {
                                xtype: 'button',
                                cls: 'login-button',
                                labelCls: 'x-button-label login-button-label',
                                text: plano.myplano.Resources.Get("LoginDescription"),
                                margin: '5px auto',
                                handler: login
                            }]
                    }, {
                        xtype: 'label',
                        itemId: 'signInFailedLabel',
                        hidden: true,
                        //hideAnimation: 'fadeOut',
                        //showAnimation: 'fadeIn',
                        style: 'color: #FF8888; text-align: center;',
                        margin: "6 12 6 12"
                    }, {
                        xtype: 'label',
                        itemId: 'vernsionInfo',
                        docked: 'bottom',
                        style: 'text-align: center; color:#FFF; font-size: 0.5em;',
                        margin: "0 0 5px 0",
                        html:
                            'myplano' +
                            ' Version 1' + '.' +
                        '2' +
                        ' Rev. 73666'
                    }, {
                    xtype: 'panel',
                    docked: 'bottom',
                    itemId: 'planoLogo',
                    //hideAnimation: 'fadeOut',
                    //showAnimation: 'fadeIn',
                    //margin: '5% 0 0 0',
                    html: '<img id="logo" class="login-plano-logo" src="/myplano/Content/Images/Vector/plano_logo_white.svg" />' //~/Content/Images/myplano 256x256.png
                }]
            });

            //hide image if soft keyboard is shown
            var myplanoLogo = form.down("[itemId='myplanoLogo']");
            var planoLogo = form.down("[itemId='planoLogo']");
            window.onresize = function () {
                // If the current active element is a text input, we can assume the soft keyboard is visible.
                var windowWidth = Ext.getBody().getWidth(true);
                var windowHeight = Ext.getBody().getHeight(true);

                if (windowWidth < windowHeight)
                {
                    //keyboard is shown
                    console.log("keyboard on");
                    myplanoLogo.show();
                    planoLogo.show();
                } else {
                    //keyboard is hidden
                    console.log("keyboard off");
                    myplanoLogo.hide();
                    planoLogo.hide();
                }
            }
        }
    });
</script>
        </div>

        <script src="/myplano/Scripts/jquery-2.1.1.js"></script>


    </body>
</html>
<script>
    //back button disabled
    document.addEventListener("backbutton", Ext.bind(onBackKeyDown, this), false);

    function onBackKeyDown(eve)
    {

        eve.preventDefault();

        //do something
        alert('back button pressed');

    }
    //this script checks if user is idling

    var timeoutInMinutes = "20";

    //console.log("timeout in " + timeoutInMinutes + " minutes.")

    var IDLE_TIMEOUT = timeoutInMinutes*60; //seconds
    var _idleSecondsCounter = 0;
    var deviceType = "";
    document.onclick = function () {
        _idleSecondsCounter = 0;
    };
    //document.onmousemove = function () {
    //    _idleSecondsCounter = 0;
    //};
    document.onkeypress = function () {
        _idleSecondsCounter = 0;
    };
    window.setInterval(CheckIdleTime, 1000);

    function CheckIdleTime()
    {
        // create local user model
        Ext.define('LocalUser', {
            extend: 'Ext.data.Model',
            config: {
                fields: [
                    { name: "id" },
                    { name: "username", type: "string" },
                    { name: "firstname", type: "string" },
                    { name: "lastname", type: "string" },
                    { name: "globalmessage", type: "string" },
                    { name: "employeemessage", type: "string" },
                    { name: "devicetype", type: "string" }
                ],
                proxy: {
                    type: 'localstorage',
                    id: 'local-user'
                }
            }
        });
        var store = Ext.create('Ext.data.Store', {
            model: 'LocalUser'
        });
        store.load();
        var storageCount = store.getAllCount();
        if (storageCount > 0)
        {
            //console.log(storageCount + " users found");
            var userObject = store.getAt(storageCount - 1);
            deviceType = userObject.get("devicetype");
            //console.log("device type found by shared: " + deviceType);

        }
        _idleSecondsCounter++;
        var oPanel = document.getElementById("SecondsUntilExpire");
        if (oPanel)
            oPanel.innerHTML = (IDLE_TIMEOUT - _idleSecondsCounter) + "";
        if (_idleSecondsCounter >= IDLE_TIMEOUT)
        {
            if (deviceType == "terminal")
            {
                location.href = plano.Base.ResolveUrl('~/Account/TerminalLogout');
            } else
            {
                location.href = plano.Base.ResolveUrl('~/Account/Logout');
            }
        }
    }

</script>

登录-myplano
var baseUrl=“/myplano/”;
Ext.Date.defaultDateFormat=“d.m.Y”;
Ext.Date.defaultTimeFormat=“H:i”;
Ext.Date.defaultTimeHMSFormat=“H:i:s”;
Ext.Date.defaultFullDateTimeFormat=“d.m.Y H:i:s”;
var localLanguage='en';
var userTextfield=新字符串;
外部设置({
onReady:function(){
//创建本地用户模型
Ext.define('LocalUser'{
扩展:“Ext.data.Model”,
配置:{
字段:[
{name:“id”},
{name:“username”,键入:“string”},
{name:“firstname”,键入:“string”},
{name:“lastname”,键入:“string”},
{name:“globalmessage”,键入:“string”},
{name:“employeemessage”,键入:“string”}
],
代理:{
类型:“localstorage”,
id:'本地用户'
}
}
});
var store=Ext.create('Ext.data.store'{
模型:“本地用户”
});
store.load();
var storageCount=store.getAllCount();
如果(存储计数>0){
//log(storageCount+“找到的用户”);
var userObject=store.getAt(storageCount-1);
var user=userObject.get(“用户名”);
userTextfield=用户;
//log(“上次登录的用户是:“+userTextfield”);
}
//登录
var login=函数(){
var label=form.down(“[itemId='signInFailedLabel']”);
var btn=窗体向下(“按钮”);
label.hide();
btn.setDisabled(真);
form.setDisabled(true);
setText(plano.myplano.Resources.Get(“LogingIn”);
//登录
Ext.Ajax.request({
url:plano.Base.ResolveUrl(“~/Account/Login”),
方法:“POST”,
参数:form.getValues(),
成功:功能(响应){
var data=Ext.decode(response.responseText);
if(data.error){
label.setHtml(data.error);
label.show();
form.setValues({
用户名:“”,
密码:“
});
setText(plano.myplano.Resources.Get(“LoginDescription”);
btn.setDisabled(假);
form.setDisabled(false);
}
else if(data.success){
var firstName=“”;
var lastName=“”;
var globalMessage=“”;
var employeeMessage=“”;
//如果需要新密码
if(data.newPasswordNeeded)
{
location.href=plano.Base.ResolveUrl(“~/Account/ResetPassword”);
};
Ext.Ajax.request({
url:plano.Base.ResolveUrl(“~/Home/getEmployeeName”),
成功:功能(结果){
var resultData=Ext.decode(result.responseText);
console.log(resultData);
控制台日志(“员工姓名”);
console.log(resultData.data['FirstName']+“”+resultData.data['LastName']);
firstName=resultData.data['firstName'];
lastName=resultData.data['lastName'];
//存储用户名
var thisuser=form.down(“textfield”).getValue();
Ext.Ajax.request({
url:plano.Base.ResolveUrl(“~/Home/getWelcomeText”),
成功:功能(结果2)
{
var resultdata=Ext.decode(result2.responseText);
console.log(“WelcomeText”);
log(resultdata['employeeMessage']);
globalMessage=resultData2['globalMessage'];
<!DOCTYPE html>
<html>
<head>
    <!-- General Meta things -->
    <meta charset="utf-8" />
    <title>Login -  myplano</title>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">


    <!--<link href="/myplano/Content/Stylesheets/myplano.css" rel="stylesheet"/>
<link href="/myplano/Scripts/Sencha/resources/css/sencha-touch.css" rel="stylesheet"/>
-->
    <link href="/myplano/Scripts/Sencha/resources/css/cupertino.css" rel="stylesheet"/>

    <link href="/myplano/Content/Stylesheets/myplano.css" rel="stylesheet"/>



    <!-- Apple Meta things -->
    <meta name="apple-mobile-web-app-capable" content="yes" />
    <meta name="apple-mobile-web-app-status-bar-style" content="white-translucent" />
    <link rel="apple-touch-icon" sizes="144x144" href="/myplano/Content/Images/App_Icons/Apple/myplano144.png">
    <link rel="apple-touch-icon" sizes="57x57" href="/myplano/Content/Images/App_Icons/Apple/myplano57.png">
    <link rel="apple-touch-icon" sizes="72x72" href="/myplano/Content/Images/App_Icons/Apple/myplano72.png">
    <link rel="apple-touch-icon" sizes="114x114" href="/myplano/Content/Images/App_Icons/Apple/myplano114.png">

    <link rel="apple-touch-startup-image" href="/myplano/Content/Images/App_Icons/Apple/apple_startup.png">
    <!-- Android Meta things -->
    <meta name="mobile-web-app-capable" content="yes">
    <meta name="theme-color" content="#384093">
    <link rel="icon" sizes=”192×192″ href="/myplano/Content/Images/App_Icons/Android/myplano192.png">

    <!-- Windows meta things -->
    <!-- TODO: Icon size needs to be 310x310 -->
    <meta name="application-name" content="myplano" />
    <meta name="msapplication-TileColor" content="#384093" />
    <meta name="msapplication-square70x70logo" content="/myplano/Content/Images/App_Icons/Windows/tiny.png" />
    <meta name="msapplication-square150x150logo" content="/myplano/Content/Images/App_Icons/Windows/square.png" />
    <meta name="msapplication-wide310x150logo" content="/myplano/Content/Images/App_Icons/Windows/wide.png" />
    <meta name="msapplication-square310x310logo" content="/myplano/Content/Images/App_Icons/Windows/large.png" />


    <meta name='msapplication-navbutton-color' content='#384093' />
    <meta name='msapplication-tooltip' content='start myplano' />
    <meta name="msapplication-window" content="width=800;height=1024;" />
    <!--<meta name='msapplication-starturl' content='http//domain.de' />-->

    <!-- This script is required for the swipe calendar-->
    <!--<script type="text/javascript" src="/myplano/Scripts/myplano/momentjs/moment.js"></script>
        -->
</head>
    <body>
        <script type="text/javascript">
            var baseUrl = "/myplano/";
        </script>

        <script src="/myplano/Scripts/Sencha/sencha-touch-all.js"></script>
<script src="/myplano/Scripts/Sencha/src/ux/picker/DateTime.js"></script>

<script src="/myplano/Scripts/Resources/Resource-de.js"></script>


        <script type="text/javascript">

            Ext.Date.defaultDateFormat = "d.m.Y";
            Ext.Date.defaultTimeFormat = "H:i";
            Ext.Date.defaultTimeHMSFormat = "H:i:s";
            Ext.Date.defaultFullDateTimeFormat = "d.m.Y H:i:s";
var localLanguage = 'en';
        </script>

        <script src="/myplano/Scripts/myplano/momentjs/moment.js"></script>
<script src="/myplano/Scripts/Controls/Timefield.js"></script>
<script src="/myplano/Scripts/Controls/DateTimePicker.js"></script>
<script src="/myplano/Scripts/myplano/Base.js"></script>
<script src="/myplano/Scripts/myplano/MainMenu.js"></script>
<script src="/myplano/Scripts/myplano/Views/AccountValues.js"></script>
<script src="/myplano/Scripts/myplano/Views/Profile.js"></script>
<script src="/myplano/Scripts/myplano/Views/RequestList.js"></script>
<script src="/myplano/Scripts/myplano/Views/TimeStamps.js"></script>
<script src="/myplano/Scripts/myplano/Views/Calendars/DayCalendar.js"></script>
<script src="/myplano/Scripts/myplano/Views/Calendars/MonthCalendar.js"></script>
<script src="/myplano/Scripts/myplano/Views/Calendars/WeekCalendar.js"></script>
<script src="/myplano/Scripts/myplano/Views/Calendars/GroupCalendar.js"></script>
<script src="/myplano/Scripts/myplano/Views/Calendars/Calendar_Shared.js"></script>
<script src="/myplano/Scripts/myplano/Views/Requests/FullDay.js"></script>
<script src="/myplano/Scripts/myplano/Views/Requests/RequestTypeList.js"></script>
<script src="/myplano/Scripts/myplano/Views/Requests/NewRequest.js"></script>
<script src="/myplano/Scripts/myplano/Views/ApproverList.js"></script>
<script src="/myplano/Scripts/myplano/placeholder.js"></script>
<script src="/myplano/Scripts/myplano/util/PaintMonitor.js"></script>
<script src="/myplano/Scripts/myplano/util/SizeMonitor.js"></script>
<script src="/myplano/Scripts/myplano/shared.js"></script>
<script src="/myplano/Scripts/myplano/TransponderUi.js"></script>


        <div>



<script type="text/javascript">

    var userTextfield = new String;

    Ext.setup({

        onReady: function () {
            // create local user model
            Ext.define('LocalUser', {
                extend: 'Ext.data.Model',
                config: {
                    fields: [
                        { name: "id" },
                        { name: "username", type: "string" },
                        { name: "firstname", type: "string" },
                        { name: "lastname", type: "string" },
                        { name: "globalmessage", type: "string" },
                        { name: "employeemessage", type: "string" }
                    ],
                    proxy: {
                        type: 'localstorage',
                        id: 'local-user'
                    }
                }
            });
            var store = Ext.create('Ext.data.Store', {
                model: 'LocalUser'
            });
            store.load();
            var storageCount = store.getAllCount();
            if (storageCount > 0) {
                //console.log(storageCount + " users found");
                var userObject = store.getAt(storageCount - 1);
                var user = userObject.get("username");
                userTextfield = user;
                //console.log("last logged in user was: " + userTextfield);
            }

            //login
            var login = function () {
                var label = form.down("[itemId='signInFailedLabel']");
                var btn = form.down("button");
                label.hide();
                btn.setDisabled(true);
                form.setDisabled(true);
                btn.setText(plano.myplano.Resources.Get("LogingIn"));

                //login
                Ext.Ajax.request({
                    url: plano.Base.ResolveUrl('~/Account/Login'),
                    method: 'POST',
                    params: form.getValues(),
                    success: function (response) {
                        var data = Ext.decode(response.responseText);
                        if (data.error) {
                            label.setHtml(data.error);
                            label.show();

                            form.setValues({
                                Username: "",
                                Password: ""
                            });

                            btn.setText(plano.myplano.Resources.Get("LoginDescription"));
                            btn.setDisabled(false);
                            form.setDisabled(false);
                        }
                        else if (data.success) {
                            var firstName = "";
                            var lastName = "";
                            var globalMessage = "";
                            var employeeMessage = "";

                            //if new password needed
                            if (data.newPasswordNeeded)
                            {
                                location.href = plano.Base.ResolveUrl('~/Account/ResetPassword');
                            };
                            Ext.Ajax.request({
                                url: plano.Base.ResolveUrl("~/Home/getEmployeeName"),
                                success: function (result) {


                                    var resultData = Ext.decode(result.responseText);

                                    console.log(resultData);

                                    console.log("Employee Name");
                                    console.log(resultData.data['FirstName'] + " " + resultData.data['LastName']);

                                    firstName = resultData.data['FirstName'];
                                    lastName = resultData.data['LastName'];

                                    //Store Username
                                    var thisuser = form.down("textfield").getValue();


                                    Ext.Ajax.request({
                                        url: plano.Base.ResolveUrl("~/Home/getWelcomeText"),
                                        success: function (result2)
                                        {
                                            var resultData2 = Ext.decode(result2.responseText);

                                            console.log("WelcomeText");
                                            console.log(resultData2['employeeMessage']);

                                            globalMessage = resultData2['globalMessage'];

                                            if (resultData2['employeeMessage'])
                                            {
                                                employeeMessage = resultData2['employeeMessage'];
                                            }

                                            var store = Ext.create('Ext.data.Store', {
                                                model: "LocalUser"
                                            });
                                            store.load();
                                            store.getProxy().clear();
                                            store.data.clear();
                                            store.add({
                                                username: thisuser,
                                                firstname: firstName,
                                                lastname: lastName,
                                                globalmessage: globalMessage,
                                                employeemessage: employeeMessage
                                            });
                                            store.sync();

                                            location.href = plano.Base.ResolveUrl('~/');

                                        }
                                    });

                                }
                            });


                        }
                    },
                    error: function (errorResponse) {
                        Ext.Msg.alert('Error', 'Login request failed');
                    }
                });
            };

            var form = Ext.create('Ext.form.Panel', {
                fullscreen: true,
                id: 'loginForm',
                scrollable: null,
                baseCls: 'login-form',
                config: {
                    //scrollable: false
                },
                layout: {
                    type: 'vbox',
                    pack: 'center',
                    align: 'center'
                },
                items: [
                {
                    xtype: 'panel',
                    hideAnimation: 'fadeOut',
                    showAnimation: 'fadeIn',
                    itemId: 'myplanoLogo',
                    html: '<img id="logo" class="login-myplano-logo" src="/myplano/Content/Images/Vector/myplano.svg" />' //~/Content/Images/myplano 256x256.png
                }, {
                    xtype: 'fieldset',
                    baseCls: 'login-form',
                    //title: plano.myplano.Resources.Get("LoginTitle"),
                    defaults: {
                        margin: '5px 0',
                        listeners: {
                            action: login
                        }
                    },
                    items: [
                            {
                                xtype: 'panel',
                                html: '<div class="separator-login"></div>'
                            },
                            {
                                xtype: "textfield",
                                clearIcon: false,
                                baseCls: 'login-form',
                                placeHolder: plano.myplano.Resources.Get("UserName"),
                                value: userTextfield,
                                name: "Username",
                                required: true
                            }, {
                                xtype: "passwordfield",
                                clearIcon: false,
                                baseCls: 'login-form',
                                placeHolder: plano.myplano.Resources.Get("Password"),
                                name: "Password",
                                required: true
                            }, {
                                xtype: 'button',
                                cls: 'login-button',
                                labelCls: 'x-button-label login-button-label',
                                text: plano.myplano.Resources.Get("LoginDescription"),
                                margin: '5px auto',
                                handler: login
                            }]
                    }, {
                        xtype: 'label',
                        itemId: 'signInFailedLabel',
                        hidden: true,
                        //hideAnimation: 'fadeOut',
                        //showAnimation: 'fadeIn',
                        style: 'color: #FF8888; text-align: center;',
                        margin: "6 12 6 12"
                    }, {
                        xtype: 'label',
                        itemId: 'vernsionInfo',
                        docked: 'bottom',
                        style: 'text-align: center; color:#FFF; font-size: 0.5em;',
                        margin: "0 0 5px 0",
                        html:
                            'myplano' +
                            ' Version 1' + '.' +
                        '2' +
                        ' Rev. 73666'
                    }, {
                    xtype: 'panel',
                    docked: 'bottom',
                    itemId: 'planoLogo',
                    //hideAnimation: 'fadeOut',
                    //showAnimation: 'fadeIn',
                    //margin: '5% 0 0 0',
                    html: '<img id="logo" class="login-plano-logo" src="/myplano/Content/Images/Vector/plano_logo_white.svg" />' //~/Content/Images/myplano 256x256.png
                }]
            });

            //hide image if soft keyboard is shown
            var myplanoLogo = form.down("[itemId='myplanoLogo']");
            var planoLogo = form.down("[itemId='planoLogo']");
            window.onresize = function () {
                // If the current active element is a text input, we can assume the soft keyboard is visible.
                var windowWidth = Ext.getBody().getWidth(true);
                var windowHeight = Ext.getBody().getHeight(true);

                if (windowWidth < windowHeight)
                {
                    //keyboard is shown
                    console.log("keyboard on");
                    myplanoLogo.show();
                    planoLogo.show();
                } else {
                    //keyboard is hidden
                    console.log("keyboard off");
                    myplanoLogo.hide();
                    planoLogo.hide();
                }
            }
        }
    });
</script>
        </div>

        <script src="/myplano/Scripts/jquery-2.1.1.js"></script>


    </body>
</html>
<script>
    //back button disabled
    document.addEventListener("backbutton", Ext.bind(onBackKeyDown, this), false);

    function onBackKeyDown(eve)
    {

        eve.preventDefault();

        //do something
        alert('back button pressed');

    }
    //this script checks if user is idling

    var timeoutInMinutes = "20";

    //console.log("timeout in " + timeoutInMinutes + " minutes.")

    var IDLE_TIMEOUT = timeoutInMinutes*60; //seconds
    var _idleSecondsCounter = 0;
    var deviceType = "";
    document.onclick = function () {
        _idleSecondsCounter = 0;
    };
    //document.onmousemove = function () {
    //    _idleSecondsCounter = 0;
    //};
    document.onkeypress = function () {
        _idleSecondsCounter = 0;
    };
    window.setInterval(CheckIdleTime, 1000);

    function CheckIdleTime()
    {
        // create local user model
        Ext.define('LocalUser', {
            extend: 'Ext.data.Model',
            config: {
                fields: [
                    { name: "id" },
                    { name: "username", type: "string" },
                    { name: "firstname", type: "string" },
                    { name: "lastname", type: "string" },
                    { name: "globalmessage", type: "string" },
                    { name: "employeemessage", type: "string" },
                    { name: "devicetype", type: "string" }
                ],
                proxy: {
                    type: 'localstorage',
                    id: 'local-user'
                }
            }
        });
        var store = Ext.create('Ext.data.Store', {
            model: 'LocalUser'
        });
        store.load();
        var storageCount = store.getAllCount();
        if (storageCount > 0)
        {
            //console.log(storageCount + " users found");
            var userObject = store.getAt(storageCount - 1);
            deviceType = userObject.get("devicetype");
            //console.log("device type found by shared: " + deviceType);

        }
        _idleSecondsCounter++;
        var oPanel = document.getElementById("SecondsUntilExpire");
        if (oPanel)
            oPanel.innerHTML = (IDLE_TIMEOUT - _idleSecondsCounter) + "";
        if (_idleSecondsCounter >= IDLE_TIMEOUT)
        {
            if (deviceType == "terminal")
            {
                location.href = plano.Base.ResolveUrl('~/Account/TerminalLogout');
            } else
            {
                location.href = plano.Base.ResolveUrl('~/Account/Logout');
            }
        }
    }

</script>