From ad3e3f8b9be57dcc0a21b112f263a81f245ea44e Mon Sep 17 00:00:00 2001 From: "Samuele E. Locatelli" Date: Thu, 5 Nov 2020 18:04:08 +0100 Subject: [PATCH] Added Backend --- .../Controllers/UserSoftkeysController.cs | 69 +++++++++- Thermo.Active.Database/DatabaseContext.cs | 1 + ...11051531133_AddedKeyboaSoftkey.Designer.cs | 29 ++++ .../202011051531133_AddedKeyboaSoftkey.cs | 27 ++++ .../202011051531133_AddedKeyboaSoftkey.resx | 126 ++++++++++++++++++ .../Thermo.Active.Database.csproj | 7 + Thermo.Active.Model/Constants.cs | 6 + .../DTOModels/DTOUserSoftKeyModel.cs | 8 ++ .../KeyboardUserSoftKeyModel.cs | 21 +++ .../Thermo.Active.Model.csproj | 1 + .../WebApi/FavoriteUserSoftKeyController.cs | 33 +++++ .../wwwroot/assets/styles/base/paddle.less | 18 +++ Thermo.Active/wwwroot/assets/styles/style.css | 17 +++ .../components/paddle/paddle.ts | 56 +++++++- .../components/paddle/paddle.vue | 22 +-- .../components/paddle/softkey.ts | 10 +- .../components/paddle/softkey.vue | 6 +- .../wwwroot/src/services/dataService.ts | 14 +- .../wwwroot/src/store/machineInfo.store.ts | 23 +++- 19 files changed, 478 insertions(+), 16 deletions(-) create mode 100644 Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.Designer.cs create mode 100644 Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.cs create mode 100644 Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.resx create mode 100644 Thermo.Active.Model/DatabaseModels/KeyboardUserSoftKeyModel.cs diff --git a/Thermo.Active.Database/Controllers/UserSoftkeysController.cs b/Thermo.Active.Database/Controllers/UserSoftkeysController.cs index cc8d186a..d37311ca 100644 --- a/Thermo.Active.Database/Controllers/UserSoftkeysController.cs +++ b/Thermo.Active.Database/Controllers/UserSoftkeysController.cs @@ -63,6 +63,13 @@ namespace Thermo.Active.Database.Controllers .Where(x => x.UserId == userId) .ToList(); } + public List FindkeyboardSoftkeys(int userId) + { + return dbCtx. + KeyboardUserSoftkeys + .Where(x => x.UserId == userId) + .ToList(); + } public List GetUserFavoriteSoftkeys(int userId) { @@ -87,7 +94,8 @@ namespace Thermo.Active.Database.Controllers softKeys.Add(new FavoriteUserSoftkeyModel() { UserId = userId, - SoftkeyId = softKeyId + SoftkeyId = softKeyId, + Type = (int) SOFTKEY_PLACE.PADDLE }); } @@ -111,5 +119,64 @@ namespace Thermo.Active.Database.Controllers // Save database context dbCtx.SaveChanges(); } + + + + + public DTOKeyboardSoftKeyModel GetKeyboardFavoriteSoftkeys(int userId) + { + + // Find user softkey stored in the database + List keyboardKey = FindkeyboardSoftkeys(userId); + + // Get config + DTOKeyboardSoftKeyModel keybSoftkey = new DTOKeyboardSoftKeyModel(); + if(keyboardKey.Count==0) + { + keybSoftkey.IdStar1 = -1; + keybSoftkey.IdStar2 = -1; + } + else + { + keybSoftkey.IdStar1 = keyboardKey.FirstOrDefault().SoftkeyId1; + keybSoftkey.IdStar2 = keyboardKey.FirstOrDefault().SoftkeyId2; + } + + return keybSoftkey; + } + + public DTOKeyboardSoftKeyModel SetKeyboardFavoriteSoftkeys(int userId,int idSoftkey, int pos) + { + + // Find user softkey stored in the database + List keyboardKey = FindkeyboardSoftkeys(userId); + if (keyboardKey.Count == 0) + { + KeyboardUserSoftKeyModel newModel = new KeyboardUserSoftKeyModel(); + newModel.UserId = userId; + if(pos==1) + { + newModel.SoftkeyId1 = idSoftkey; + newModel.SoftkeyId2 = -1; + } + else if (pos == 2) + { + newModel.SoftkeyId1 = -1; + newModel.SoftkeyId2 = idSoftkey; + } + dbCtx.KeyboardUserSoftkeys.Add(newModel); + } + else + { + KeyboardUserSoftKeyModel model = keyboardKey.FirstOrDefault(); + if (pos == 1) + model.SoftkeyId1 = idSoftkey; + else if (pos == 2) + model.SoftkeyId2 = idSoftkey; + } + dbCtx.SaveChanges(); + return GetKeyboardFavoriteSoftkeys(userId); + } + } } diff --git a/Thermo.Active.Database/DatabaseContext.cs b/Thermo.Active.Database/DatabaseContext.cs index e6d5c470..6cbeca3f 100644 --- a/Thermo.Active.Database/DatabaseContext.cs +++ b/Thermo.Active.Database/DatabaseContext.cs @@ -26,6 +26,7 @@ namespace Thermo.Active.Database public DbSet FunctionsAccess { get; set; } public DbSet Sessions { get; set; } public DbSet FavoriteUserSoftkeys { get; set; } + public DbSet KeyboardUserSoftkeys { get; set; } // Maintenances public DbSet Maintenances { get; set; } public DbSet PerformedMaintenances { get; set; } diff --git a/Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.Designer.cs b/Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.Designer.cs new file mode 100644 index 00000000..60eac88c --- /dev/null +++ b/Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.Designer.cs @@ -0,0 +1,29 @@ +// +namespace Thermo.Active.Database.Migrations +{ + using System.CodeDom.Compiler; + using System.Data.Entity.Migrations; + using System.Data.Entity.Migrations.Infrastructure; + using System.Resources; + + [GeneratedCode("EntityFramework.Migrations", "6.2.0-61023")] + public sealed partial class AddedKeyboaSoftkey : IMigrationMetadata + { + private readonly ResourceManager Resources = new ResourceManager(typeof(AddedKeyboaSoftkey)); + + string IMigrationMetadata.Id + { + get { return "202011051531133_AddedKeyboaSoftkey"; } + } + + string IMigrationMetadata.Source + { + get { return null; } + } + + string IMigrationMetadata.Target + { + get { return Resources.GetString("Target"); } + } + } +} diff --git a/Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.cs b/Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.cs new file mode 100644 index 00000000..d47427a0 --- /dev/null +++ b/Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.cs @@ -0,0 +1,27 @@ +namespace Thermo.Active.Database.Migrations +{ + using System; + using System.Data.Entity.Migrations; + + public partial class AddedKeyboaSoftkey : DbMigration + { + public override void Up() + { + CreateTable( + "dbo.keyboard_user_softKey", + c => new + { + user_id = c.Int(nullable: false), + pos1_softkey_id = c.Int(nullable: false), + pos2_softkey_id = c.Int(nullable: false), + }) + .PrimaryKey(t => t.user_id); + + } + + public override void Down() + { + DropTable("dbo.keyboard_user_softKey"); + } + } +} diff --git a/Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.resx b/Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.resx new file mode 100644 index 00000000..a9e947a0 --- /dev/null +++ b/Thermo.Active.Database/Migrations/202011051531133_AddedKeyboaSoftkey.resx @@ -0,0 +1,126 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + H4sIAAAAAAAEAO1dW28jN5Z+X2D/g6DH2YzV7mAGOw17Bors7jHi21ru7tkngS7RciF1UeritGexv2wf9iftX1iyrrwWySKrSkqCIEC7SH4kDz8eHpLnUP/3P/979rdvYTB7hUnqx9H5/PTk3XwGIy/e+tHufJ5nz3/89/nf/vqv/3J2uQ2/zb7U+b7H+VDJKD2fv2TZ/sNikXovMATpSeh7SZzGz9mJF4cLsI0X79+9+8vi9HQBEcQcYc1mZw95lPkhLP5Af67iyIP7LAfBTbyFQVp9RynrAnV2C0KY7oEHz+ePLzAJ45Oll/mv8OQCZOAJpHA+WwY+QK1Zw+B5PgNRFGcgQ2398DmF6yyJo916jz6A4PFtD1G+ZxDgUkUfPrTZdbvz7j3uzqItWEN5eZrFoSHg6feVfBZs8V5SnjfyQxK8RJLO3nCvCymez5cBSMILmHqJv8dVpIXM5zO26g+rIMHFWJEX2RvBlwN2Igb9biYo+l1DI8Q2/N93s1UeZHkCzyOYZwlAOe7zp8D3foRvj/FPMDqP8iAgO4W6hdKoD+jTfRLvYZK9PcBnsqtX2/lsQRdesKWbsmzBUgBXUfb9+/nsFjUDPAWwYQ8hrHUWJ/ATjGACMri9B1kGEzT4t3EEueqZyh79LIB1VYiraOrNZzfg2zWMdtnL+Rz9cz776H+D2/pLVf3nyEczFRXKkpyp5WzRjruaDR/9ADpjQQM2+ehnGfBeQhhlvShAlbblwdUWFpJXcQELD//LMR34iq5jDwSj1aY5n7pB1nGeeG1bkaI/WV4vH24267vPD6tLYzy0MiRcm5git+DV3xUjKyg8nz3AoEhMX/x93SRqDmzKfB+TOHyIA26+FcmbpmOxPM8jSHYw6znJMYKL+d3gTD2166EzndTCIR9wOuP6IjcTzJDcH/0kzcbRJGCkiu5Bmv4SJ9vBK1pDL0/Q6K4zEO4Hr20TgGiXg93wAryAAUQsruv5IUbaBkQKaplZEnceEl2CdhDQnVnJYk6tfJhG9bYvaYixVJKTpZg191XL6MArOcYRoD3+5705FvoTES2FqZ2EHtH2ltIfiNkQf1QjSW0OVupy+4OdMhu+KGOSKEuIrRR1MZHhojKsUnnPGhNkw9TP9Uias2kS1RN59rrj/bWiK/uLBptaD4qNsKFUpp7ppqG2TNSu0cwkuTgkfYUTUc12Nzubth7hzoZOVjXVfmdTAN7GmbvjiwZs6umFG9JnotTlxjIobtBqOYb16kwBHNo5RGsZOLMUuudwQ3HxHKaTxXOYyWM1hy+ebr2PIPSDNxeTmEGbehaXTekzj9uSDVlP/zzYIfQoO/gHf/eSrf1/NjX98JaZH21cw2d7kEdv/4izW4F8AmEIrBAeqqEjdzC9gFZoM48GrSxrgYMGer2H0FJFYubEYGvXEj/CGPdetsyzOLCGK5vkCu7iLULz01vF4R5GaXVXZ99b57Blr13DXvvP0Jqyt3HoRyDAWHZse4CvSLVfwCADJkDaC9RH8BonfgbxUreOn7OfoJOVSgY79ZJVtUVza9f3KJ6oxWbsXViFJJPdEiePPEyLpYePlJxwhkecmi50k3pZOhzCWHuXUayer3iSX8NXGCAlb6vpwNYN0jKBYPCeX0a4RYYXDoIj2cAzm+LaExQx8ykGybZWwT+60ewy2Kmn6tTXpjobkWZdOLXdpVc47wdhzg3wXvzIybETCTU1Q6q29CEJUXS0o6dS+kMfPEX+zznRr7FdtCrBurpEYOEOhHJ9dRNTfDTq6bJ9ePMVH8u5u8qoOiY8PWSps2kyt0eIsjzcOaI0o+mFBYbTa26Zs6Ot+LO6oUUuZ9cqHDx7KCvMoG6l/cEsBnahcRqcqVVNPVNMdYzeDDuybUmxjxjINvKjDEYg8qArz2IR5NRs+t2/uItdo/oXE/QYZEXWXzybdkh0PU/jDVWIVPvdeQUrgKKAwyVLUBO/bEky6TXcfvkiYB2roINQPwznze1mgynjZmuP0GHyCppF5yLOixs4ldcq2AaFkWl6Pa7yErxZXt0+Xt4ub1eX/XwFV3GOu2R9/jxAAJBIjoT33/Bb5uzu+QaCFDFfKvPPt1ePm7uPm5vL5frzw6VS2gksKIgJYE0G7LV++W3vJx2QU4SPsFqmS63qqdQB1KkrhysR5NRqtY8u/d3dStJWd2bZAE5SBsZa6+6kNtaEebsmqLjAEMaa3PFLmkmv4fba5R4mz3ESwq1jq02KO7WeETWsj+6R4Yylj5ysxpUh9QUEuaUvyCqOsiQOvhJxYpPrrgIK/W+7sSwghHNcyvINWbCd7jr5uZmvVchUbamUsKJSXhNrFTDtW4dO1tdwSby9ip5jJ1qNxJpak11kl69IV5irrqagUns48nHNwyb0p9OlVglzEUfQDgR39CtIQvsosy+ECC1QgJfnDlqzevMC+CmJUwfxcwXWLbTs3Q3iSYIffoHh/jLakkKvDyDsEMkB6IsYB1uMZglTDiJ2EvrCn7IYNykPtpdomu3e7j4/ugO7urXEukrXXgIaUTmOYv6PHObwKoOhE3c9Bm1qTa3p0lmFwE6zD9ZR5E0DR6kMJBn6tEtAOE6QBNxb6s4HGCKjBbXOHmr5lMZBnkEksZfh311Ag5UbNVh7Wq8RXRAPXMxpEmrqCV21pZf/dVt0rK1i0dcR7gINHIJUt6VJml3Hu9bZ1smxU9M+4Y6H5NeGytxucmR5uH2NNKPZVgYZzu1cooMdr9KPAdi1L+qZzS20XU8zEGXpv5GoTqcVYs8WJsEbYhvJBXq0bmD4BJPawF/NZ8VRxPn8HTeuVM776zbrKS/MUmxKUZZ3T24FiTEnFuPlw8Pdg64kvy4fbq9uP1lJk7/PcyVTFnlqyf7jfnOxfLzUFe7NcvX3q9vLDe7Ew5fltUzKbLnHqxtBofeWQ8Nd+w0xSkwlEw9YGOoO1YXu2PxdNh7c4DcZv9cZuGWaxp5fyL1WUoIX7ej60CZ4pvG8XXsLzL46eYPE7u+RoNHqcz7/A9eh7groQ52iAsJZmsZ+d3LCCxYZVDDBNgwICjYl+MyPt778yPP3IFC3hCkqNN2kr6csmorYlAu4hxG2tdTCtmtBUxFjU6rkdLYg2KNBKvUzRZ00MHiziKEe/0yZIQP13z1iqxa8vDsoQ7VbqkMZyYO65qzVHjrtVjGvkU1HavkTP52M0njvh2GSVMcp2avxNJbhhDllB+rsLroonhucLb3yHewVSD2w5TdKaBXauiK7smPadOp6rMqc7srBddau8VmutgdkkQsD8NnYHjg44k5lR4gH6TjsCMavpZMrMvcWhoyEi5shGSVeMUdERnEPxiSjeJAOnozS+DgZYdTBcoTnLBcGqk9MZawdX8+BElTVEx2OSIOcjYiqGjvrlkxB2CJCUptFdLjkQFSloi2JSojoxIMnKdkHHV6IAxXt6EkOll0bpiBm58KuiJAdiJhHuLx39mGkBb5zsI5giRfFZ8g50xmsQRKT9Xo2IWZXrMe4h6KdbRmNYB1CPyaCiUNENWigiBcV0q7Xabx2yKkB1Q9BS+r1Ss/C6/Du70vrzvF10qqpiK6rTdVXTINQ+zA066SXTspBOCYNK47r0qCEIshLSMNeR0racWLHqmE7ezWZhu0c3yPUsJonpBphgANT+yg3VYp+jK+Zj/T8VCuMTUYns5i2llkdkaf6XDaKjRvXcDBp2khMNRkqbWXbBFgeInUVloVh0OK45D1mQ8Ooa+NaG0Zjfiwmh9R5XcY9tSd7Szc6iEOf30oneIMT4ukpreqNHlU63lw1YrFq/Jy0xjlxyzgH/FZAsWq0TxkUgT74O/yWCRyRURMrX+S0CkZhOYdx1zCTeKal81kbYqHwCuToLIDGO3ApJnHsocDCkhfBELNApzWEk5isTbwfmQ6wrH2s25AOVoptYykYsZFRgBU/z+QLkbgftFJCcT8EIoKV/wyJCr/6fYW0/IEFEbTohyoUqOwj95JWy5/YV+BXWkGESbsoaOLISMRrfAUgVnwiIOJCWtkk6gxN3CrR8aU+rgLTHE82bcSnAApgke0jAu8wb1U1VC9kiEDphzgUQEUItwCFCxRX4FQLpaiXtF3D4BArmED5E2c6MyKncBkQHP1QZlJX7EbTG3rh4ZZqvUANAq2alaypRPdaVyIaP3ssEZJhJALfU/1YBFaU1KqpEqh+3AFbDW2FuJG33NVdJmdN53i+42r3eLbDQmaZAMsk2TFg9oLsnMpd7jBdPeucysZyGmUqs0/VSSTSda7N90Fyps1KpF7rVCKRnFoPIBL5Dy/wctFzQmVO4hVuqESXGHOqQ0ZKp1MB6hCyKn/1QUNQvPNjd38o90c3IqKcHQnIyuZ0LxzZ7NJwwOvuiWyGWQhn+Fkm8u0SCkfpBCa76VIJhzSHO2XT5fM1rGwkL9d3iknDlUnWv25nJrHw1OaptueS5ui4EqkG5bQNerW/jFPpjUhByXu8nWLT8PVQX0/rU1DDiND27RiFg2qLS9OfwNCjwK34hiah3kurvOzMr7b7X24T3ZYctHRI1egme3wBy6d6jxtYizvYIWU82uyXPzXFi1fvZs/sbo/oWXs81iE35UWerp3ZIav6EazmcqhJO1usvRcYgurD2QJl8eA+y0FQtCitE27Afu9Hu7QtWX2ZrffAQ/1Y/XE9n30Lgyg9n79k2f7DYpEW0OlJ6HtJnMbP2YkXhwuwjRfv3737y+L0dBGWGAsvJUXOXmU1NWVxAnaQScXvY29h8axZfdk1n622IZeNvQqTnG3Wtcluu/ihrI8+65L439VjQ9QDPXUDZNdj/L1ihfgRdRv/qlYhAdh1CiYBQlBrD6DM7FOI9dsXqzjIw6j86AvuK+UQ1Q+9kABZ+YnHOFswHeJuRTlhctfN9Cjpj2FpALoavPb+ouegdQBIB4v6dbX+I9b+ghmJ8Yy+biLA/0ZMFxTzi2gkXoCTNr1QhazE+cLNFnF9Y9bdWjGTYGn1TR+lvsgnUXKspsWNmYjp5cLggOTtzaE5vzvKmkjXbJQxQsSRMG++mkwPtJKI5gf6bD5BgAgrAD2g7kGa/lL8BAQJtW++GswI6OUJHq0M4Oe5qYlRJW3SMk0fdBOAaJcXv+JDd7X+qg9V+h4xHd3WHw9msnEXJ64WF86hpOcao8bp1MD0szz9p2aHOu8BxLyJJV4i6ovDKVYKPMaMPVR8MZjp5VPgeDtETfX2s4l5FkLBPM/QZ+kUn3I+OVvBGD+qnlPI0VrWYSn0nIIl12OcXlzsHpQZQt44uhrK1hGn51B2AMjGABex033NL9uREGH9cTDz85gs6/b58UNXUI17pANOs/6U5qRWIkgN3KKQHa95m9bUnH3wdy/Z2v8nA5Pgz5u0+G5gZsNnAVaAvhpDPXr7R/DEHWl4+00GBL/s2wX1CYQhoHF25ScDMVVu2rxVkVQpG1PzYhXHASLWD28Zg+iVCZunIsVAyYFv6z1kDfYQfNuk5WcjqOsYCJCC4qsBkB9hoHsvW+ZZHPCYflRgbvZetgFNFuOWyiuoGt27gos3NKV8bxWHexiloHT1o3ZEZYaNR+UwFpGynkZUZIU9RKWuqBZZ34qu/WfIT5QAfTWeJLcx6jYIMCKj58qETVCkGExk+IoWALS1zRiVkBQJaP0tUg5osRM48DtY+KQe/+YroD6U3IIpSgktq7RMM7SJHBlq+pvIqejBxF+4YIYgYKMHKXRQpKYRVXhqE+krJvc1fIXBjc+oyl9w0ibAaZvQN1L7+Kf0xKAJSumHuURFmU1F8UUf4TLC1hUjcFh/NDg7CTx22PaBbGMz0dwRRhk5mEDSsCTzWaQPNbAibDT0KTOocXraU0U3kO85yPcKyIkI03gSOyAJFWdmTozu4nILsHkT1uIspYwlstGonyP/55xrRl58Pcwhd3YeyoUE9h77HmeiTDS0BQfERAorL/xJbLX6UVl6cx4cGKFKb3sHRGpDQs0Z1FHWRLpjG2KFucSeLb3ygY0TDi/n6uxEZQjidfuoDR0YqWn5W/F6YZ46odVb60E5qIqbnryuieuAtMZrnXQczcbuCsEkr4BRPH71Vah8pGeJaGcXFLF1tEtF/XXM2+1VnOMusLLxys+m5yQG3ody4RCx1LR8iAQjIzO7e76BIM0T1h8JJW3i501YJxqIDW2ocUvwdRkjuSplswVm5/bYOeny295PJMCFmxJsMhjjH5/ycXZlLXxBwkoL9bi+/lVdXQ+yPB7P3bM4IMMBU+XPkZjT1QBLen4ngLDjMa/XTPVYtWIVvzgrXrReyyQTyChDe8SvnD+nVyZsTH069aaHMWLzACUHWKSkh6XKmwdyXMwL6kWdHnOhu7yUrdnlK4KjBd58NNj05mEdQEQiEZ+NsC5i1nhsPpr5In4FSUgDtV/NkL5wYmq/GiIBL88Fraq/m6Gt3rwAfkriNOURybQeqLfscNIpJnMbaS0fBI8w3F9GW35QhBl64/NDJcxgchQcbHFRBrT5qo9UjjG+E/vC7rSYJJPW5cH2EqnH3dvd50e2jXRaL9SrWykoTjLYYqZrLwGMGJuPB6PXy/fKHCh19oEzc7WuRBjGGK9cwoUO4WZBJEmGPu0SEPKHV3uUuNmXqcbHVw9wzzQvKb6YIGDDAglfBFUlbUxBl08pwsngPchemBvqKmWzL5IM7g8zkOVMA9Pq28FMmSb22MGsod7yM58y3cWlUi5LWQanxj9B5lAnKz8ZXzmJtrH1tVOP7WwRZXYd71gfjDLMLCgTRmYTFybOZmlqr740fzdh4lWINhU7XogAR4IXXU+rcHE2ZrvMMp8hOb36WxyvffO2/jkoWHhS/HMV+IWZUOe4AZH/jDbqxSCfz/908qf5bBn4IC2j+6to9A/sg8da4emn3+PwdLgNF2xx8yB3jJKmW4r7xDSUBDeJ1pezH+EbO+A1r9qnp3kini3YgmcMHXGZ8vVOH4v4Ng8C7HqD+AiClH/2myldHbmWAEEc7cqnpluU4llpCoQkqlouknuj0eRRqLRPEE0JZLdu0VqCrNcIr+mwaK6xwIgLIhOh8UDcfZMdHBMK0p8RKfXSfR+ERqcSENzb5VfRFn47n/9XUebD7OoftSr+bnaXIBXxYfZu9t+OiChxezhaDrax0XLOaJK5jYy2ZDNwBNRGRdvhsOHQtt2rY6HtcJpQ6BLmKY4DxaCZadvuuOGjJXwbctxfK4lDjM1UlAhDX18NoWvLK9z+5fdtZLKNEdHcupQg+Jg+Ky5n7hPo+Wlhu71zynQrnS61+gV51eG66ukxzIpoQHu6+X1ITyIYNMhsUCU3pUert5o7V7tVY3L6HIRZObKW6QzSHYORaQiCoI+gXJhhZDBviZRnfvTWpzlELK8lEhHKa4lUBfNaojBxvJZodAyvJRgRwtt/xrXRu7atEYfsOuije1RxbK4rAdDxsa4E4BSVCLq1RKIDbvvzkI6z1cXR1vR6wagGlmVXJJK+NappVpKVuT2zGXQroj86qqjQo7UOXazTXDSpzSyjY0gtttpFBKldx5oAUu2TEsHmNjCzWrU5qRdjabUX7bepNBUQG4ppBfW+F5S20OXxi79pDUCEQA5yi9MdOni0oifjDg221ZW0yevjZn99+t3sKl0FCAEmcPth9oiEjj+Voavl3z224H12/13NfD9MM5u4SbNDiqrYEEdKkpDFo6Wsk3uaMvhxAOWsihQ8WrEf6o0vGzthNu/o0lZnhAd339sdw3CorhhEeGB1vhnnxVmX6RVjHRpocUrq/qKJDBIc1V1FJCEiONDa+KKjAoVd00FiQgGdjp04GlC3iuluKNyogN8vlUYcMk3b+0BWrpGvlO71guyOlpkDqC4mTM9m/SGj82zuRIiQvN7EtZ8+RBBfj1Y0pQdQvffy8Dk9Zkti5tT0bgo6pSAReGd5MdsE3lnitHF3/XncRtxZYlSRdnYoZHSdA6RbaNUvYQidzCbvg0gKvi9iEzFnBcNEylk2iQ6QcwWGA+OssJqwOO27BG1l1xlU1nchF2bbi0PGht6VNtVaQPDBaZbOKUUkmc1NFx2TZnHTRUei2XWrjkRzfjgnD+M6WlOzigWzPUFjgsBMLSmquJVNRwWPDbAXIX5gtKqRjs4R/HAy8Uun7eVP1bbiN1iJrzd5kPn7wPdQ1aiRJyenXIdbNCYuiIRkk2jcP3CgiKMwwRQCwSqO0izBxi1PaD/y/D0IuN4wOfXV86LBZFMu4B5GmNXizurUKPdOXjTozGxUyYH6hVkNXrBxBBs2xk1KFUkwHDfIgizmJOLCHbhq+ByDUEonBHBAfmn87JzMsV31m2vjca6ZlhumT91cs+fAKRdpfReVP2Q4W3pl3OkKpB7Y8locadttZ+vEmpNNGo6TvZjhgpJmSlYdZDENE12uir9Smo2/mprVeACraXMDcTR8au9MOD4RSb8SPnU983hofGK9sTbVBympKK85cjDphFGoxbmSCdoztLpS/IiCc4ZpPN7P19n1KP40NMOdkXKsdbQiB5T4+pthV9cL+4dBLenPG0zDqyNYEA+BV6Muir14NfWySF+oj3mcxV3m0/xgE38N/FA+N3zA/GiPPImPHeaTxeAOppAEvraSdg19ltqLC+74Z3awqnptfDoqTqOuJmfPVGrrmM7jRZ6MvwbVJT5iEGf4Naous1OHQ1NdR3WkdUism0rlHdMhl9RPdtP+ssFIq6XcZZdE78h1/CTS9FqWVK76xYlDINQRLqSHycspllQH9JT9wsoo3CSdszbE0YvqRL/fedRAdKQ8zMj20AlDnuiPqhMV76rLT/THXFiZJ8GrlnDPd3NEq14ZJ28wBd46rZ+Zwq2nfB78fL59ihE1Ss81zvdEsAQLmkHsR8XVExnk1eIIXGV9xAziqiLSRLXgMdbrD++ZIu4Wn0/eu7j1m9FqQ1dH2QzyWvX7TBjY4vqIDPL6opj/ITCuPvYJP75CLoeoxucig7I26TNSfLXyrOL6y9wb8r0ndXME7yYJWiLKJWxElXEDPKEbOlu99Ikcvg3yrKKG/FTlbqXxo4Y06Nturgl0sqjaSoHrVtQ1q/gsHRXqzSzirpWrjkgT1YMvBDV6JToTFPRMlE3cu/Y8Q0sf8xZsV+16NZtU2qW2xNlU3dZSYR0WPNeMjryituzr7BsTkdDRfYJG0OmiiussyrrY4Bq+Ni6HqL6fi9+gUlVGW6pcTXSyqJq0zMFVRFhnMnOmPESbETmFRo3grE129NH0jvrKGZ1yp3wCgE1i9wV0B3U7r3Yxl8nD0Dmd76bUmm27K8iiEp7MmGtB+RxuRCn3nJaJUNPXeohO8phi2rJJrkXVOeW6HFTcTrkxO88c2ss633W277bz3KLadp5Isu681GlSIAE9B0vRgQzfETqhQxgyo5FEcckGsXufjjR4P0CqI5wdWvSA+HrIQpBNCg2nNWfTYnwhiBynhEJQelg5FILY1q2EwCa6FILYO6hbHhoeRe66J0MSm27iDMMITIM5o1iyByAUsaNGt2w0nDuGZ5F4QRZnGEZgGiwaxT6ZSihad98C+ZjfmTsTlfKMosDqyDW00OTzr8fF8ECTcHohSi8iBXLTu7R0Z9l0XDYSKHSCtkC4H89t0s4W5UFP9QH9yf1I7tniIY/wMw3lXxcw9XctxBnCjKBH3cw1efAZWH1TyLSozsI+igMzsAUZWCaZ/ww8/Hvg+DDej3bz2Rf8Qtr5/DJ8gtur6C7P9nmGugzDJ/ruAl80dtV/tuDafHZXHoS46AJqpo9ftriLfsj9YNu0+6PgLQsJBL7BrJ4SwWOZ4SdFdm8N0m3MHtPLgCrxNRev+D2lAIGld9EavMI+bUMMvoY74L3dVz91LAdRDwQt9rMLH+AndNIKoy2P/kQc3obf/vr/e8MHY0RTAQA= + + + dbo + + \ No newline at end of file diff --git a/Thermo.Active.Database/Thermo.Active.Database.csproj b/Thermo.Active.Database/Thermo.Active.Database.csproj index 06cd87b8..4c6523b7 100644 --- a/Thermo.Active.Database/Thermo.Active.Database.csproj +++ b/Thermo.Active.Database/Thermo.Active.Database.csproj @@ -150,6 +150,10 @@ 202011051133455_AddedTypeKey.cs + + + 202011051531133_AddedKeyboaSoftkey.cs + @@ -198,6 +202,9 @@ 202011051133455_AddedTypeKey.cs + + 202011051531133_AddedKeyboaSoftkey.cs + \ No newline at end of file diff --git a/Thermo.Active.Model/Constants.cs b/Thermo.Active.Model/Constants.cs index d986d893..b69607df 100644 --- a/Thermo.Active.Model/Constants.cs +++ b/Thermo.Active.Model/Constants.cs @@ -68,6 +68,12 @@ namespace Thermo.Active.Model GROUP = 2 } + public enum SOFTKEY_PLACE : int + { + PADDLE = 0, + GANT = 1, + } + public enum HEAD_TYPE { SPINDLE = 0, diff --git a/Thermo.Active.Model/DTOModels/DTOUserSoftKeyModel.cs b/Thermo.Active.Model/DTOModels/DTOUserSoftKeyModel.cs index b46dd7db..6ab17d71 100644 --- a/Thermo.Active.Model/DTOModels/DTOUserSoftKeyModel.cs +++ b/Thermo.Active.Model/DTOModels/DTOUserSoftKeyModel.cs @@ -12,6 +12,14 @@ namespace Thermo.Active.Model.DTOModels public string RefCallLabel { get; set; } = ""; public SOFTKEY_TYPE Type { get; set; } public Dictionary SubKeys { get; set; } + public SOFTKEY_TYPE Place { get; set; } + } + + + public class DTOKeyboardSoftKeyModel + { + public int IdStar1 { get; set; } + public int IdStar2 { get; set; } } public class DTOUserSoftKeyModel diff --git a/Thermo.Active.Model/DatabaseModels/KeyboardUserSoftKeyModel.cs b/Thermo.Active.Model/DatabaseModels/KeyboardUserSoftKeyModel.cs new file mode 100644 index 00000000..d4f129b8 --- /dev/null +++ b/Thermo.Active.Model/DatabaseModels/KeyboardUserSoftKeyModel.cs @@ -0,0 +1,21 @@ +using System.ComponentModel.DataAnnotations; +using System.ComponentModel.DataAnnotations.Schema; + +namespace Thermo.Active.Model.DatabaseModels +{ + [Table("keyboard_user_softKey")] + public class KeyboardUserSoftKeyModel + { + [Key] + [Column("user_id")] + [DatabaseGenerated(DatabaseGeneratedOption.None)] + public int UserId { get; set; } + + [Column("pos1_softkey_id")] + public int SoftkeyId1 { get; set; } + + [Column("pos2_softkey_id")] + public int SoftkeyId2 { get; set; } + + } +} diff --git a/Thermo.Active.Model/Thermo.Active.Model.csproj b/Thermo.Active.Model/Thermo.Active.Model.csproj index 88df18c7..53f0a8d6 100644 --- a/Thermo.Active.Model/Thermo.Active.Model.csproj +++ b/Thermo.Active.Model/Thermo.Active.Model.csproj @@ -87,6 +87,7 @@ + diff --git a/Thermo.Active/Controllers/WebApi/FavoriteUserSoftKeyController.cs b/Thermo.Active/Controllers/WebApi/FavoriteUserSoftKeyController.cs index 88c15662..e31d4916 100644 --- a/Thermo.Active/Controllers/WebApi/FavoriteUserSoftKeyController.cs +++ b/Thermo.Active/Controllers/WebApi/FavoriteUserSoftKeyController.cs @@ -51,5 +51,38 @@ namespace Thermo.Active.Controllers.WebApi } } + [Route("keyboard"), HttpGet] + [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.USER_FUNCTIONS, Action = ACTIONS.READ)] + public IHttpActionResult GetKeyboardSoftkeys() + { + var identity = User.Identity as ClaimsIdentity; + // Find user id from the bearer token + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); + int userIdInt = Convert.ToInt32(userId.Value); + using (UserSoftkeysController controller = new UserSoftkeysController()) + { + return Ok(controller.GetKeyboardFavoriteSoftkeys(userIdInt)); + } + } + + [Route("keyboard"), HttpPut] + [WebApiAuthorize(FunctionAccess = FUNCTIONALITY_NAMES.GENERAL, Action = ACTIONS.WRITE)] + public IHttpActionResult setKeyboardSoftkey(int softkeyId, int position) + { + if (position > 2) + return BadRequest("position_error"); + + var identity = User.Identity as ClaimsIdentity; + // Find user id from the bearer token + var userId = identity.Claims.FirstOrDefault(c => c.Type == USER_ID_KEY); + int userIdInt = Convert.ToInt32(userId.Value); + using (UserSoftkeysController controller = new UserSoftkeysController()) + { + return Ok(controller.SetKeyboardFavoriteSoftkeys(userIdInt, softkeyId, position)); + } + } + + + } } diff --git a/Thermo.Active/wwwroot/assets/styles/base/paddle.less b/Thermo.Active/wwwroot/assets/styles/base/paddle.less index 4ebc7ddf..dd0a9578 100644 --- a/Thermo.Active/wwwroot/assets/styles/base/paddle.less +++ b/Thermo.Active/wwwroot/assets/styles/base/paddle.less @@ -119,8 +119,26 @@ color: #979797; margin: 0 1rem; + .keyb{ + border: 2px solid #979797; + width: 35px; + height: 35px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 25px; + font-size: 22px; + font-weight: bold; + line-height: 35px; + &.active { + color: #1791ff; + border-color: #1791ff; + } + } + &.active { color: #1791ff; + border-color: #1791ff; } } diff --git a/Thermo.Active/wwwroot/assets/styles/style.css b/Thermo.Active/wwwroot/assets/styles/style.css index f464a492..a58357ed 100644 --- a/Thermo.Active/wwwroot/assets/styles/style.css +++ b/Thermo.Active/wwwroot/assets/styles/style.css @@ -5108,8 +5108,25 @@ article .box .body { color: #979797; margin: 0 1rem; } +.paddle section footer .configure .keyb { + border: 2px solid #979797; + width: 35px; + height: 35px; + display: flex; + justify-content: center; + align-items: center; + border-radius: 25px; + font-size: 22px; + font-weight: bold; + line-height: 35px; +} +.paddle section footer .configure .keyb.active { + color: #1791ff; + border-color: #1791ff; +} .paddle section footer .configure.active { color: #1791ff; + border-color: #1791ff; } .softkey { width: 100%; diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/paddle.ts b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/paddle.ts index 5d5bb237..d854e9ff 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/paddle.ts +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/paddle.ts @@ -17,7 +17,9 @@ export default class Paddle extends Vue { isOpen: boolean = true; openFull: boolean = false configMode: boolean = false; - + configkey1: boolean = false; + configkey2: boolean = false; + get softKeys(): { [id: number]: SoftKeysConfigurationModel[] } { return store.state.machineInfo.softKeys as { [id: number]: SoftKeysConfigurationModel[] }; } @@ -43,6 +45,23 @@ export default class Paddle extends Vue { return result; } + setConfigkey1(){ + this.configkey1 = !this.configkey1; + this.configkey2=false; + this.configMode=false; + } + + setConfigkey2(){ + this.configkey2 = !this.configkey2; + this.configkey1=false; + this.configMode=false; + } + + setConfig(){ + this.configMode = !this.configMode; + this.configkey1=false; + this.configkey2=false; + } get favourites(): number[] { return store.state.machineInfo.softkeysFavorites; } @@ -51,6 +70,31 @@ export default class Paddle extends Vue { return this.favourites.map(i => this.getSoftKeyById(i) as SoftKeysConfigurationModel) } + get keyb1(): number { + return store.state.machineInfo.starKeyboard1; + } + + get keyb2(): number { + return store.state.machineInfo.starKeyboard2; + } + + isInKeyboard(id): boolean{ + if(this.configkey1) + return id == this.keyb1; + if(this.configkey2) + return id == this.keyb2; + return false + } + + keyb1click(){ + if(this.keyb1>=0) + Hub.Current.sendUserSoftKey(this.keyb1); + } + keyb2click(){ + if(this.keyb2>=0) + Hub.Current.sendUserSoftKey(this.keyb2); + } + getSoftKeyById(id: number): SoftKeysConfigurationModel { return this.allSoftKeys.find(i => i.id == id); } @@ -68,6 +112,7 @@ export default class Paddle extends Vue { async loadData() { await dataService.GetSoftKeysConfiguration(); await dataService.GetUserSoftkeyFavorite(); + await dataService.GetKeybSoftkeyFavorite(); } confirmationDelegate = null; @@ -98,6 +143,15 @@ export default class Paddle extends Vue { async toggleFavourite(id: number, add: boolean) { + if(this.configkey1){ + await dataService.AddKeybSoftkey(id,1) + return; + } + if(this.configkey2){ + await dataService.AddKeybSoftkey(id,2) + return; + } + if (add) await dataService.AddUserSoftkeyFavorite(id) else diff --git a/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/paddle.vue b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/paddle.vue index 815cb663..04d159ef 100644 --- a/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/paddle.vue +++ b/Thermo.Active/wwwroot/src/app_modules_thermo/components/paddle/paddle.vue @@ -16,17 +16,17 @@
{{'star-keyboard-softkeys' | localize("Keyboard softkeys")}}
- -
{{'preferred-softkeys' | localize("Soft Keys")}}
@@ -38,6 +38,8 @@ :title="'softkey_' + b.id | localize('softkey_' + b.id)" :type="b.type" :config-mode="configMode" + :configkeyboardMode="configkey1 || configkey2" + :isInKeyboard="isInKeyboard(b.id)" @toggleFavourite="toggleFavourite(b.id, false)" v-model="getSoftKeyStatus(b.id).value" :active="getSoftKeyStatus(b.id).active" @@ -49,11 +51,13 @@