escambalkon commited on
Commit
c1c931f
·
verified ·
1 Parent(s): bcbc82f

Upload folder using huggingface_hub

Browse files
Files changed (1) hide show
  1. index.html +458 -510
index.html CHANGED
@@ -36,246 +36,8 @@
36
  color: var(--dark);
37
  }
38
 
39
- /* Login Container */
40
- .login-container {
41
- display: flex;
42
- justify-content: center;
43
- align-items: center;
44
- min-height: 100vh;
45
- padding: 20px;
46
- }
47
-
48
- .login-card {
49
- background: var(--white);
50
- border-radius: var(--radius);
51
- box-shadow: var(--shadow);
52
- width: 100%;
53
- max-width: 480px;
54
- padding: 40px;
55
- animation: slideUp 0.5s;
56
- }
57
-
58
- @keyframes slideUp {
59
- from {
60
- transform: translateY(50px);
61
- opacity: 0;
62
- }
63
-
64
- to {
65
- transform: translateY(0);
66
- opacity: 1;
67
- }
68
- }
69
-
70
- .login-header {
71
- text-align: center;
72
- margin-bottom: 30px;
73
- }
74
-
75
- .login-logo {
76
- display: flex;
77
- align-items: center;
78
- justify-content: center;
79
- gap: 15px;
80
- font-size: 32px;
81
- font-weight: bold;
82
- color: var(--primary);
83
- margin-bottom: 10px;
84
- }
85
-
86
- .login-logo i {
87
- font-size: 48px;
88
- background: linear-gradient(135deg, var(--primary), var(--secondary));
89
- -webkit-background-clip: text;
90
- -webkit-text-fill-color: transparent;
91
- }
92
-
93
- .login-subtitle {
94
- color: var(--gray);
95
- font-size: 14px;
96
- }
97
-
98
- .form-group {
99
- margin-bottom: 20px;
100
- }
101
-
102
- .form-group label {
103
- display: block;
104
- margin-bottom: 8px;
105
- font-weight: 500;
106
- color: var(--dark);
107
- }
108
-
109
- .input-group {
110
- position: relative;
111
- }
112
-
113
- .input-group i {
114
- position: absolute;
115
- left: 15px;
116
- top: 50%;
117
- transform: translateY(-50%);
118
- color: var(--gray);
119
- }
120
-
121
- .input-group .toggle-password {
122
- position: absolute;
123
- right: 15px;
124
- top: 50%;
125
- transform: translateY(-50%);
126
- color: var(--gray);
127
- cursor: pointer;
128
- transition: var(--transition);
129
- }
130
-
131
- .input-group .toggle-password:hover {
132
- color: var(--primary);
133
- }
134
-
135
- .form-control {
136
- width: 100%;
137
- padding: 12px 45px 12px 45px;
138
- border: 2px solid var(--light);
139
- border-radius: 8px;
140
- font-size: 14px;
141
- transition: var(--transition);
142
- }
143
-
144
- .form-control:focus {
145
- outline: none;
146
- border-color: var(--primary);
147
- box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
148
- }
149
-
150
- .btn {
151
- width: 100%;
152
- padding: 12px 24px;
153
- border: none;
154
- border-radius: 8px;
155
- font-size: 14px;
156
- font-weight: 600;
157
- cursor: pointer;
158
- transition: var(--transition);
159
- display: inline-flex;
160
- align-items: center;
161
- justify-content: center;
162
- gap: 8px;
163
- }
164
-
165
- .btn-primary {
166
- background: linear-gradient(135deg, var(--primary), var(--primary-dark));
167
- color: var(--white);
168
- }
169
-
170
- .btn-primary:hover {
171
- transform: translateY(-2px);
172
- box-shadow: 0 10px 20px rgba(37, 99, 235, 0.3);
173
- }
174
-
175
- .btn-secondary {
176
- background: var(--light);
177
- color: var(--dark);
178
- }
179
-
180
- .btn-secondary:hover {
181
- background: #e5e7eb;
182
- }
183
-
184
- .login-footer {
185
- text-align: center;
186
- margin-top: 30px;
187
- padding-top: 20px;
188
- border-top: 1px solid var(--light);
189
- }
190
-
191
- .login-footer a {
192
- color: var(--primary);
193
- text-decoration: none;
194
- font-weight: 500;
195
- }
196
-
197
- .login-footer a:hover {
198
- text-decoration: underline;
199
- }
200
-
201
- .auth-tabs {
202
- display: flex;
203
- margin-bottom: 25px;
204
- background: var(--light);
205
- border-radius: 8px;
206
- padding: 4px;
207
- }
208
-
209
- .auth-tab {
210
- flex: 1;
211
- padding: 10px;
212
- background: transparent;
213
- border: none;
214
- border-radius: 6px;
215
- cursor: pointer;
216
- font-weight: 500;
217
- color: var(--gray);
218
- transition: var(--transition);
219
- }
220
-
221
- .auth-tab.active {
222
- background: var(--white);
223
- color: var(--primary);
224
- box-shadow: var(--shadow-sm);
225
- }
226
-
227
- .subscription-info {
228
- background: linear-gradient(135deg, var(--primary), var(--primary-dark));
229
- color: var(--white);
230
- padding: 20px;
231
- border-radius: 8px;
232
- margin-bottom: 25px;
233
- text-align: center;
234
- }
235
-
236
- .subscription-info h3 {
237
- margin-bottom: 10px;
238
- }
239
-
240
- .subscription-info p {
241
- font-size: 14px;
242
- opacity: 0.9;
243
- }
244
-
245
- .demo-credentials {
246
- background: #dbeafe;
247
- border: 1px solid #60a5fa;
248
- color: #1e40af;
249
- padding: 12px;
250
- border-radius: 8px;
251
- margin-bottom: 20px;
252
- font-size: 13px;
253
- }
254
-
255
- .demo-credentials .credential-item {
256
- display: flex;
257
- justify-content: space-between;
258
- margin: 5px 0;
259
- }
260
-
261
- .demo-credentials .copy-btn {
262
- background: var(--primary);
263
- color: var(--white);
264
- border: none;
265
- padding: 2px 8px;
266
- border-radius: 4px;
267
- cursor: pointer;
268
- font-size: 11px;
269
- transition: var(--transition);
270
- }
271
-
272
- .demo-credentials .copy-btn:hover {
273
- background: var(--primary-dark);
274
- }
275
-
276
- /* Main App Styles */
277
  .app-container {
278
- display: none;
279
  }
280
 
281
  .container {
@@ -350,21 +112,6 @@
350
  color: var(--gray);
351
  }
352
 
353
- .btn-logout {
354
- padding: 8px 16px;
355
- background: var(--danger);
356
- color: var(--white);
357
- border: none;
358
- border-radius: 6px;
359
- cursor: pointer;
360
- transition: var(--transition);
361
- font-size: 14px;
362
- }
363
-
364
- .btn-logout:hover {
365
- background: #dc2626;
366
- }
367
-
368
  .stats-bar {
369
  display: grid;
370
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
@@ -517,6 +264,30 @@
517
  font-size: 12px;
518
  }
519
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
520
  .table-container {
521
  overflow-x: auto;
522
  margin-top: 20px;
@@ -649,6 +420,150 @@
649
  opacity: 0.8;
650
  }
651
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
652
  @media (max-width: 768px) {
653
  .main-content {
654
  grid-template-columns: 1fr;
@@ -678,121 +593,19 @@
678
  width: 100%;
679
  justify-content: space-between;
680
  }
 
 
 
 
 
 
 
 
681
  }
682
  </style>
683
  </head>
684
 
685
  <body>
686
- <!-- Login Container -->
687
- <div id="loginContainer" class="login-container">
688
- <div class="login-card">
689
- <div class="login-header">
690
- <div class="login-logo">
691
- <i class="fas fa-window-maximize"></i>
692
- <span>PencerePro</span>
693
- </div>
694
- <p class="login-subtitle">Pencere Üretim Yönetim Sistemi</p>
695
- </div>
696
-
697
- <div class="subscription-info">
698
- <h3><i class="fas fa-crown"></i> Premium Lisans</h3>
699
- <p>Bu sistem kiralık bir yazılımdır. Lütfen giriş bilgilerinizi kullanın.</p>
700
- </div>
701
-
702
- <div class="demo-credentials">
703
- <h4><i class="fas fa-key"></i> Demo Giriş Bilgileri:</h4>
704
- <div class="credential-item">
705
- <span><strong>Yönetici:</strong> admin / admin123</span>
706
- <button class="copy-btn" onclick="copyCredentials('admin', 'admin123')">Kopyala</button>
707
- </div>
708
- <div class="credential-item">
709
- <span><strong>Test Kullanıcı:</strong> test / test123</span>
710
- <button class="copy-btn" onclick="copyCredentials('test', 'test123')">Kopyala</button>
711
- </div>
712
- </div>
713
-
714
- <div class="auth-tabs">
715
- <button class="auth-tab active" onclick="switchTab('login')">Giriş Yap</button>
716
- <button class="auth-tab" onclick="switchTab('register')">Kayıt Ol</button>
717
- </div>
718
-
719
- <!-- Login Form -->
720
- <form id="loginForm" onsubmit="handleLogin(event)">
721
- <div class="form-group">
722
- <label>E-posta / Kullanıcı Adı</label>
723
- <div class="input-group">
724
- <i class="fas fa-user"></i>
725
- <input type="text" class="form-control" id="loginUsername" required placeholder="E-posta veya kullanıcı adı">
726
- </div>
727
- </div>
728
- <div class="form-group">
729
- <label>Şifre</label>
730
- <div class="input-group">
731
- <i class="fas fa-lock"></i>
732
- <input type="password" class="form-control" id="loginPassword" required placeholder="Şifreniz">
733
- <i class="fas fa-eye toggle-password" onclick="togglePassword('loginPassword')"></i>
734
- </div>
735
- </div>
736
- <button type="submit" class="btn btn-primary">
737
- <i class="fas fa-sign-in-alt"></i> Giriş Yap
738
- </button>
739
- </form>
740
-
741
- <!-- Register Form -->
742
- <form id="registerForm" style="display: none;" onsubmit="handleRegister(event)">
743
- <div class="form-group">
744
- <label>Ad Soyad</label>
745
- <div class="input-group">
746
- <i class="fas fa-user"></i>
747
- <input type="text" class="form-control" id="registerName" required placeholder="Adınız ve soyadınız">
748
- </div>
749
- </div>
750
- <div class="form-group">
751
- <label>Kullanıcı Adı</label>
752
- <div class="input-group">
753
- <i class="fas fa-id-badge"></i>
754
- <input type="text" class="form-control" id="registerUsername" required placeholder="Kullanıcı adı">
755
- </div>
756
- </div>
757
- <div class="form-group">
758
- <label>E-posta</label>
759
- <div class="input-group">
760
- <i class="fas fa-envelope"></i>
761
- <input type="email" class="form-control" id="registerEmail" required placeholder="E-posta adresiniz">
762
- </div>
763
- </div>
764
- <div class="form-group">
765
- <label>Şifre</label>
766
- <div class="input-group">
767
- <i class="fas fa-lock"></i>
768
- <input type="password" class="form-control" id="registerPassword" required placeholder="Şifreniz">
769
- <i class="fas fa-eye toggle-password" onclick="togglePassword('registerPassword')"></i>
770
- </div>
771
- </div>
772
- <div class="form-group">
773
- <label>Şifre Tekrar</label>
774
- <div class="input-group">
775
- <i class="fas fa-lock"></i>
776
- <input type="password" class="form-control" id="registerPasswordConfirm" required placeholder="Şifrenizi tekrar girin">
777
- <i class="fas fa-eye toggle-password" onclick="togglePassword('registerPasswordConfirm')"></i>
778
- </div>
779
- </div>
780
- <button type="submit" class="btn btn-primary">
781
- <i class="fas fa-user-plus"></i> Kayıt Ol
782
- </button>
783
- </form>
784
-
785
- <div class="login-footer">
786
- <p>© 2024 PencerePro - Tüm hakları saklıdır</p>
787
- <p style="margin-top: 10px;">
788
- <a href="https://huggingface.co/spaces/akhaliq/anycoder" target="_blank" class="built-with">
789
- Built with anycoder <i class="fas fa-external-link-alt"></i>
790
- </a>
791
- </p>
792
- </div>
793
- </div>
794
- </div>
795
-
796
  <!-- Main Application -->
797
  <div id="appContainer" class="app-container">
798
  <header>
@@ -802,14 +615,11 @@
802
  <span>PencerePro</span>
803
  </div>
804
  <div class="user-info">
805
- <div class="user-avatar" id="userAvatar">A</div>
806
  <div class="user-details">
807
- <span class="user-name" id="userName">Admin User</span>
808
- <span class="user-role" id="userRole">Yönetici</span>
809
  </div>
810
- <button class="btn-logout" onclick="logout()">
811
- <i class="fas fa-sign-out-alt"></i> Çıkış
812
- </button>
813
  </div>
814
  </div>
815
  </header>
@@ -877,10 +687,6 @@
877
  <i class="fas fa-chart-bar"></i>
878
  <span>Raporlar</span>
879
  </div>
880
- <div class="nav-item" onclick="showSection('users')" id="usersNavItem" style="display: none;">
881
- <i class="fas fa-users"></i>
882
- <span>Kullanıcılar</span>
883
- </div>
884
  </nav>
885
  </aside>
886
 
@@ -890,10 +696,42 @@
890
  <div class="section-header">
891
  <h2 class="section-title">Hoş Geldiniz!</h2>
892
  </div>
893
- <div style="text-align: center; padding: 40px;">
894
- <i class="fas fa-chart-line" style="font-size: 64px; color: var(--primary); margin-bottom: 20px;"></i>
895
- <h3>PencerePro Yönetim Paneli</h3>
896
- <p style="color: var(--gray); margin-top: 10px;">Sol menüden işlem seçebilirsiniz.</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
897
  </div>
898
  </section>
899
 
@@ -912,6 +750,7 @@
912
  <th>Ölçüler</th>
913
  <th>Tarih</th>
914
  <th>Durum</th>
 
915
  </tr>
916
  </thead>
917
  <tbody>
@@ -922,6 +761,10 @@
922
  <td>120x150 cm</td>
923
  <td>15.01.2024</td>
924
  <td><span class="status-badge status-completed">Tamamlandı</span></td>
 
 
 
 
925
  </tr>
926
  <tr>
927
  <td>#2024002</td>
@@ -930,6 +773,10 @@
930
  <td>100x120 cm</td>
931
  <td>16.01.2024</td>
932
  <td><span class="status-badge status-processing">Üretimde</span></td>
 
 
 
 
933
  </tr>
934
  <tr>
935
  <td>#2024003</td>
@@ -938,6 +785,34 @@
938
  <td>90x110 cm</td>
939
  <td>17.01.2024</td>
940
  <td><span class="status-badge status-pending">Beklemede</span></td>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
941
  </tr>
942
  </tbody>
943
  </table>
@@ -949,22 +824,130 @@
949
  <div class="section-header">
950
  <h2 class="section-title">Yeni Sipariş</h2>
951
  </div>
952
- <div style="text-align: center; padding: 40px;">
953
- <i class="fas fa-plus-circle" style="font-size: 64px; color: var(--primary); margin-bottom: 20px;"></i>
954
- <h3>Yeni Sipariş Formu</h3>
955
- <p style="color: var(--gray); margin-top: 10px;">Sipariş formu burada gösterilecektir.</p>
956
- </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
957
  </section>
958
 
959
  <!-- Calculator Section -->
960
  <section id="calculator" class="section">
961
  <div class="section-header">
962
- <h2 class="section-title">Hesaplama</h2>
963
  </div>
964
- <div style="text-align: center; padding: 40px;">
965
- <i class="fas fa-calculator" style="font-size: 64px; color: var(--primary); margin-bottom: 20px;"></i>
966
- <h3>Fiyat Hesaplama</h3>
967
- <p style="color: var(--gray); margin-top: 10px;">Hesaplama aracı burada gösterilecektir.</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
968
  </div>
969
  </section>
970
 
@@ -973,10 +956,49 @@
973
  <div class="section-header">
974
  <h2 class="section-title">Üretim Takibi</h2>
975
  </div>
976
- <div style="text-align: center; padding: 40px;">
977
- <i class="fas fa-industry" style="font-size: 64px; color: var(--primary); margin-bottom: 20px;"></i>
978
- <h3>Üretim Yönetimi</h3>
979
- <p style="color: var(--gray); margin-top: 10px;">Üretim takip arayüzü burada gösterilecektir.</p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
980
  </div>
981
  </section>
982
 
@@ -985,130 +1007,56 @@
985
  <div class="section-header">
986
  <h2 class="section-title">Malzeme Stok</h2>
987
  </div>
988
- <div style="text-align: center; padding: 40px;">
989
- <i class="fas fa-boxes" style="font-size: 64px; color: var(--primary); margin-bottom: 20px;"></i>
990
- <h3>Stok Yönetimi</h3>
991
- <p style="color: var(--gray); margin-top: 10px;">Malzeme stok arayüzü burada gösterilecektir.</p>
992
- </div>
993
- </section>
994
-
995
- <!-- Reports Section -->
996
- <section id="reports" class="section">
997
- <div class="section-header">
998
- <h2 class="section-title">Raporlar</h2>
999
- </div>
1000
- <div style="text-align: center; padding: 40px;">
1001
- <i class="fas fa-chart-bar" style="font-size: 64px; color: var(--primary); margin-bottom: 20px;"></i>
1002
- <h3>Raporlama</h3>
1003
- <p style="color: var(--gray); margin-top: 10px;">Raporlama arayüzü burada gösterilecektir.</p>
1004
- </div>
1005
- </section>
1006
-
1007
- <!-- Users Section -->
1008
- <section id="users" class="section">
1009
- <div class="section-header">
1010
- <h2 class="section-title">Kullanıcı Yönetimi</h2>
1011
- <button class="btn btn-primary btn-sm" onclick="showAddUserModal()">
1012
- <i class="fas fa-plus"></i> Yeni Kullanıcı
1013
- </button>
1014
- </div>
1015
  <div class="table-container">
1016
  <table>
1017
  <thead>
1018
  <tr>
1019
- <th>Kullanıcı Adı</th>
1020
- <th>Ad Soyad</th>
1021
- <th>E-posta</th>
1022
- <th>Rol</th>
 
 
1023
  <th>Durum</th>
1024
- <th>İşlemler</th>
1025
  </tr>
1026
  </thead>
1027
- <tbody id="usersTableBody">
1028
- <!-- Users will be loaded here -->
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1029
  </tbody>
1030
  </table>
1031
- </div>
1032
- </section>
1033
- </main>
1034
- </div>
1035
- </div>
1036
- </div>
1037
-
1038
- <!-- Toast Notification -->
1039
- <div id="toast" class="toast">
1040
- <i class="fas fa-check-circle"></i>
1041
- <span id="toastMessage">İşlem başarılı!</span>
1042
- </div>
1043
-
1044
- <script>
1045
- // User Management System
1046
- let currentUser = null;
1047
- let users = [];
1048
-
1049
- // Initialize users with default accounts
1050
- function initializeUsers() {
1051
- const savedUsers = localStorage.getItem('pencereProUsers');
1052
-
1053
- if (savedUsers) {
1054
- users = JSON.parse(savedUsers);
1055
- } else {
1056
- // Create default users
1057
- users = [
1058
- {
1059
- id: 1,
1060
- username: 'admin',
1061
- email: 'admin@pencerepro.com',
1062
- name: 'Administrator',
1063
- password: 'admin123',
1064
- role: 'admin',
1065
- status: 'active',
1066
- createdAt: new Date().toISOString()
1067
- },
1068
- {
1069
- id: 2,
1070
- username: 'test',
1071
- email: 'test@pencerepro.com',
1072
- name: 'Test User',
1073
- password: 'test123',
1074
- role: 'user',
1075
- status: 'active',
1076
- createdAt: new Date().toISOString()
1077
- }
1078
- ];
1079
- localStorage.setItem('pencereProUsers', JSON.stringify(users));
1080
- console.log('Default users created:', users);
1081
- }
1082
- }
1083
-
1084
- // Initialize on page load
1085
- window.onload = function() {
1086
- initializeUsers();
1087
-
1088
- const savedUser = localStorage.getItem('pencereProCurrentUser');
1089
- if (savedUser) {
1090
- currentUser = JSON.parse(savedUser);
1091
- showApp();
1092
- }
1093
- };
1094
-
1095
- function switchTab(tab) {
1096
- const tabs = document.querySelectorAll('.auth-tab');
1097
- tabs.forEach(t => t.classList.remove('active'));
1098
-
1099
- if (tab === 'login') {
1100
- tabs[0].classList.add('active');
1101
- document.getElementById('loginForm').style.display = 'block';
1102
- document.getElementById('registerForm').style.display = 'none';
1103
- } else {
1104
- tabs[1].classList.add('active');
1105
- document.getElementById('loginForm').style.display = 'none';
1106
- document.getElementById('registerForm').style.display = 'block';
1107
- }
1108
- }
1109
-
1110
- function togglePassword(fieldId) {
1111
- const field = document.getElementById(fieldId);
1112
- const icon = field.nextElementSibling;
1113
-
1114
- if (field
 
36
  color: var(--dark);
37
  }
38
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
39
  .app-container {
40
+ display: block;
41
  }
42
 
43
  .container {
 
112
  color: var(--gray);
113
  }
114
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
115
  .stats-bar {
116
  display: grid;
117
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
 
264
  font-size: 12px;
265
  }
266
 
267
+ .btn {
268
+ padding: 8px 16px;
269
+ border: none;
270
+ border-radius: 6px;
271
+ font-size: 14px;
272
+ font-weight: 600;
273
+ cursor: pointer;
274
+ transition: var(--transition);
275
+ display: inline-flex;
276
+ align-items: center;
277
+ justify-content: center;
278
+ gap: 8px;
279
+ }
280
+
281
+ .btn-primary {
282
+ background: linear-gradient(135deg, var(--primary), var(--primary-dark));
283
+ color: var(--white);
284
+ }
285
+
286
+ .btn-primary:hover {
287
+ transform: translateY(-2px);
288
+ box-shadow: 0 10px 20px rgba(37, 99, 235, 0.3);
289
+ }
290
+
291
  .table-container {
292
  overflow-x: auto;
293
  margin-top: 20px;
 
420
  opacity: 0.8;
421
  }
422
 
423
+ /* Enhanced Dashboard Styles */
424
+ .dashboard-grid {
425
+ display: grid;
426
+ grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
427
+ gap: 20px;
428
+ margin-top: 30px;
429
+ }
430
+
431
+ .dashboard-card {
432
+ background: rgba(255, 255, 255, 0.5);
433
+ backdrop-filter: blur(10px);
434
+ border-radius: var(--radius);
435
+ padding: 25px;
436
+ transition: var(--transition);
437
+ border: 1px solid rgba(255, 255, 255, 0.2);
438
+ }
439
+
440
+ .dashboard-card:hover {
441
+ transform: translateY(-5px);
442
+ box-shadow: var(--shadow);
443
+ background: rgba(255, 255, 255, 0.7);
444
+ }
445
+
446
+ .dashboard-card h3 {
447
+ color: var(--primary);
448
+ margin-bottom: 15px;
449
+ font-size: 18px;
450
+ }
451
+
452
+ .dashboard-card p {
453
+ color: var(--gray);
454
+ line-height: 1.6;
455
+ }
456
+
457
+ .quick-actions {
458
+ display: grid;
459
+ grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
460
+ gap: 15px;
461
+ margin-top: 20px;
462
+ }
463
+
464
+ .quick-action-btn {
465
+ background: rgba(255, 255, 255, 0.8);
466
+ border: 2px solid var(--primary);
467
+ color: var(--primary);
468
+ padding: 20px;
469
+ border-radius: var(--radius);
470
+ text-align: center;
471
+ cursor: pointer;
472
+ transition: var(--transition);
473
+ text-decoration: none;
474
+ }
475
+
476
+ .quick-action-btn:hover {
477
+ background: var(--primary);
478
+ color: var(--white);
479
+ transform: translateY(-3px);
480
+ box-shadow: 0 10px 20px rgba(37, 99, 235, 0.3);
481
+ }
482
+
483
+ .quick-action-btn i {
484
+ font-size: 32px;
485
+ margin-bottom: 10px;
486
+ display: block;
487
+ }
488
+
489
+ .quick-action-btn span {
490
+ font-weight: 600;
491
+ font-size: 14px;
492
+ }
493
+
494
+ /* New Order Form Styles */
495
+ .form-group {
496
+ margin-bottom: 20px;
497
+ }
498
+
499
+ .form-group label {
500
+ display: block;
501
+ margin-bottom: 8px;
502
+ font-weight: 500;
503
+ color: var(--dark);
504
+ }
505
+
506
+ .form-control {
507
+ width: 100%;
508
+ padding: 12px;
509
+ border: 2px solid var(--light);
510
+ border-radius: 8px;
511
+ font-size: 14px;
512
+ transition: var(--transition);
513
+ }
514
+
515
+ .form-control:focus {
516
+ outline: none;
517
+ border-color: var(--primary);
518
+ box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
519
+ }
520
+
521
+ .form-row {
522
+ display: grid;
523
+ grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
524
+ gap: 20px;
525
+ }
526
+
527
+ /* Calculator Styles */
528
+ .calculator-grid {
529
+ display: grid;
530
+ grid-template-columns: 1fr 1fr;
531
+ gap: 30px;
532
+ margin-top: 30px;
533
+ }
534
+
535
+ .calculator-inputs {
536
+ background: rgba(255, 255, 255, 0.5);
537
+ padding: 25px;
538
+ border-radius: var(--radius);
539
+ }
540
+
541
+ .calculator-result {
542
+ background: linear-gradient(135deg, var(--primary), var(--primary-dark));
543
+ color: var(--white);
544
+ padding: 25px;
545
+ border-radius: var(--radius);
546
+ display: flex;
547
+ flex-direction: column;
548
+ justify-content: center;
549
+ }
550
+
551
+ .calculator-result h3 {
552
+ margin-bottom: 20px;
553
+ font-size: 20px;
554
+ }
555
+
556
+ .price-display {
557
+ font-size: 48px;
558
+ font-weight: bold;
559
+ margin-bottom: 10px;
560
+ }
561
+
562
+ .price-details {
563
+ font-size: 14px;
564
+ opacity: 0.9;
565
+ }
566
+
567
  @media (max-width: 768px) {
568
  .main-content {
569
  grid-template-columns: 1fr;
 
593
  width: 100%;
594
  justify-content: space-between;
595
  }
596
+
597
+ .calculator-grid {
598
+ grid-template-columns: 1fr;
599
+ }
600
+
601
+ .dashboard-grid {
602
+ grid-template-columns: 1fr;
603
+ }
604
  }
605
  </style>
606
  </head>
607
 
608
  <body>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
609
  <!-- Main Application -->
610
  <div id="appContainer" class="app-container">
611
  <header>
 
615
  <span>PencerePro</span>
616
  </div>
617
  <div class="user-info">
618
+ <div class="user-avatar">A</div>
619
  <div class="user-details">
620
+ <span class="user-name">Admin User</span>
621
+ <span class="user-role">Yönetici</span>
622
  </div>
 
 
 
623
  </div>
624
  </div>
625
  </header>
 
687
  <i class="fas fa-chart-bar"></i>
688
  <span>Raporlar</span>
689
  </div>
 
 
 
 
690
  </nav>
691
  </aside>
692
 
 
696
  <div class="section-header">
697
  <h2 class="section-title">Hoş Geldiniz!</h2>
698
  </div>
699
+
700
+ <div class="dashboard-grid">
701
+ <div class="dashboard-card">
702
+ <h3><i class="fas fa-chart-line"></i> İstatistikler</h3>
703
+ <p>Bu ay 24 yeni sipariş alındı. 18 sipariş başarıyla tamamlandı. Üretim verimliliği %75 arttı.</p>
704
+ </div>
705
+
706
+ <div class="dashboard-card">
707
+ <h3><i class="fas fa-tasks"></i> Yapılacaklar</h3>
708
+ <p>• 3 sipariş üretimde bekliyor<br>• Malzeme stoğu kontrol edilmeli<br>• Haftalık rapor hazırlanmalı</p>
709
+ </div>
710
+
711
+ <div class="dashboard-card">
712
+ <h3><i class="fas fa-bell"></i> Duyurular</h3>
713
+ <p>• Yeni malzeme tedarikçisi eklendi<br>• Sistem bakımı 25.01.2024'te<br>• Kampanya: %10 indirim</p>
714
+ </div>
715
+ </div>
716
+
717
+ <h3 style="margin-top: 40px; margin-bottom: 20px; color: var(--dark);">Hızlı İşlemler</h3>
718
+ <div class="quick-actions">
719
+ <div class="quick-action-btn" onclick="showSection('newOrder')">
720
+ <i class="fas fa-plus"></i>
721
+ <span>Yeni Sipariş</span>
722
+ </div>
723
+ <div class="quick-action-btn" onclick="showSection('calculator')">
724
+ <i class="fas fa-calculator"></i>
725
+ <span>Fiyat Hesapla</span>
726
+ </div>
727
+ <div class="quick-action-btn" onclick="showSection('production')">
728
+ <i class="fas fa-industry"></i>
729
+ <span>Üretim Gör</span>
730
+ </div>
731
+ <div class="quick-action-btn" onclick="showSection('reports')">
732
+ <i class="fas fa-file-alt"></i>
733
+ <span>Rapor Al</span>
734
+ </div>
735
  </div>
736
  </section>
737
 
 
750
  <th>Ölçüler</th>
751
  <th>Tarih</th>
752
  <th>Durum</th>
753
+ <th>İşlemler</th>
754
  </tr>
755
  </thead>
756
  <tbody>
 
761
  <td>120x150 cm</td>
762
  <td>15.01.2024</td>
763
  <td><span class="status-badge status-completed">Tamamlandı</span></td>
764
+ <td>
765
+ <button class="action-btn edit" onclick="editOrder('2024001')"><i class="fas fa-edit"></i></button>
766
+ <button class="action-btn delete" onclick="deleteOrder('2024001')"><i class="fas fa-trash"></i></button>
767
+ </td>
768
  </tr>
769
  <tr>
770
  <td>#2024002</td>
 
773
  <td>100x120 cm</td>
774
  <td>16.01.2024</td>
775
  <td><span class="status-badge status-processing">Üretimde</span></td>
776
+ <td>
777
+ <button class="action-btn edit" onclick="editOrder('2024002')"><i class="fas fa-edit"></i></button>
778
+ <button class="action-btn delete" onclick="deleteOrder('2024002')"><i class="fas fa-trash"></i></button>
779
+ </td>
780
  </tr>
781
  <tr>
782
  <td>#2024003</td>
 
785
  <td>90x110 cm</td>
786
  <td>17.01.2024</td>
787
  <td><span class="status-badge status-pending">Beklemede</span></td>
788
+ <td>
789
+ <button class="action-btn edit" onclick="editOrder('2024003')"><i class="fas fa-edit"></i></button>
790
+ <button class="action-btn delete" onclick="deleteOrder('2024003')"><i class="fas fa-trash"></i></button>
791
+ </td>
792
+ </tr>
793
+ <tr>
794
+ <td>#2024004</td>
795
+ <td>Zeynep Ak</td>
796
+ <td>Çift Kanatlı</td>
797
+ <td>140x180 cm</td>
798
+ <td>18.01.2024</td>
799
+ <td><span class="status-badge status-processing">Üretimde</span></td>
800
+ <td>
801
+ <button class="action-btn edit" onclick="editOrder('2024004')"><i class="fas fa-edit"></i></button>
802
+ <button class="action-btn delete" onclick="deleteOrder('2024004')"><i class="fas fa-trash"></i></button>
803
+ </td>
804
+ </tr>
805
+ <tr>
806
+ <td>#2024005</td>
807
+ <td>Mustafa Çelik</td>
808
+ <td>Sabit</td>
809
+ <td>80x100 cm</td>
810
+ <td>19.01.2024</td>
811
+ <td><span class="status-badge status-pending">Beklemede</span></td>
812
+ <td>
813
+ <button class="action-btn edit" onclick="editOrder('2024005')"><i class="fas fa-edit"></i></button>
814
+ <button class="action-btn delete" onclick="deleteOrder('2024005')"><i class="fas fa-trash"></i></button>
815
+ </td>
816
  </tr>
817
  </tbody>
818
  </table>
 
824
  <div class="section-header">
825
  <h2 class="section-title">Yeni Sipariş</h2>
826
  </div>
827
+ <form onsubmit="saveOrder(event)">
828
+ <div class="form-row">
829
+ <div class="form-group">
830
+ <label>Müşteri Adı</label>
831
+ <input type="text" class="form-control" placeholder="Müşteri adı soyadı" required>
832
+ </div>
833
+ <div class="form-group">
834
+ <label>Telefon</label>
835
+ <input type="tel" class="form-control" placeholder="Telefon numarası" required>
836
+ </div>
837
+ </div>
838
+
839
+ <div class="form-row">
840
+ <div class="form-group">
841
+ <label>Pencere Tipi</label>
842
+ <select class="form-control" required>
843
+ <option value="">Seçiniz...</option>
844
+ <option value="sabit">Sabit</option>
845
+ <option value="tek-kanat">Tek Kanatlı</option>
846
+ <option value="cift-kanat">Çift Kanatlı</option>
847
+ <option value="panjur">Panjur</option>
848
+ </select>
849
+ </div>
850
+ <div class="form-group">
851
+ <label>Malzeme</label>
852
+ <select class="form-control" required>
853
+ <option value="">Seçiniz...</option>
854
+ <option value="pvc">PVC</option>
855
+ <option value="aluminyum">Alüminyum</option>
856
+ <option value="ahsap">Ahşap</option>
857
+ </select>
858
+ </div>
859
+ </div>
860
+
861
+ <div class="form-row">
862
+ <div class="form-group">
863
+ <label>Genişlik (cm)</label>
864
+ <input type="number" class="form-control" placeholder="Genişlik" min="10" required>
865
+ </div>
866
+ <div class="form-group">
867
+ <label>Yükseklik (cm)</label>
868
+ <input type="number" class="form-control" placeholder="Yükseklik" min="10" required>
869
+ </div>
870
+ </div>
871
+
872
+ <div class="form-group">
873
+ <label>Notlar</label>
874
+ <textarea class="form-control" rows="3" placeholder="Ek notlar..."></textarea>
875
+ </div>
876
+
877
+ <button type="submit" class="btn btn-primary">
878
+ <i class="fas fa-save"></i> Siparişi Kaydet
879
+ </button>
880
+ </form>
881
  </section>
882
 
883
  <!-- Calculator Section -->
884
  <section id="calculator" class="section">
885
  <div class="section-header">
886
+ <h2 class="section-title">Fiyat Hesaplama</h2>
887
  </div>
888
+
889
+ <div class="calculator-grid">
890
+ <div class="calculator-inputs">
891
+ <form onsubmit="calculatePrice(event)">
892
+ <div class="form-group">
893
+ <label>Pencere Tipi</label>
894
+ <select class="form-control" id="calcType" onchange="updatePrice()" required>
895
+ <option value="">Seçiniz...</option>
896
+ <option value="sabit">Sabit - +0%</option>
897
+ <option value="tek-kanat">Tek Kanatlı - +10%</option>
898
+ <option value="cift-kanat">Çift Kanatlı - +20%</option>
899
+ <option value="panjur">Panjur - +30%</option>
900
+ </select>
901
+ </div>
902
+
903
+ <div class="form-group">
904
+ <label>Malzeme</label>
905
+ <select class="form-control" id="calcMaterial" onchange="updatePrice()" required>
906
+ <option value="">Seçiniz...</option>
907
+ <option value="pvc">PVC - 500₺/m²</option>
908
+ <option value="aluminyum">Alüminyum - 750₺/m²</option>
909
+ <option value="ahsap">Ahşap - 1000₺/m²</option>
910
+ </select>
911
+ </div>
912
+
913
+ <div class="form-row">
914
+ <div class="form-group">
915
+ <label>Genişlik (cm)</label>
916
+ <input type="number" class="form-control" id="calcWidth" placeholder="Genişlik" min="10" onchange="updatePrice()" required>
917
+ </div>
918
+ <div class="form-group">
919
+ <label>Yükseklik (cm)</label>
920
+ <input type="number" class="form-control" id="calcHeight" placeholder="Yükseklik" min="10" onchange="updatePrice()" required>
921
+ </div>
922
+ </div>
923
+
924
+ <div class="form-group">
925
+ <label>Ekstralar</label>
926
+ <div style="display: flex; gap: 15px; margin-top: 10px;">
927
+ <label>
928
+ <input type="checkbox" value="cam" onchange="updatePrice()">
929
+ Cam Film (+50₺)
930
+ </label>
931
+ <label>
932
+ <input type="checkbox" value="sineklik" onchange="updatePrice()">
933
+ Sineklik (+100₺)
934
+ </label>
935
+ <label>
936
+ <input type="checkbox" value="izolasyon" onchange="updatePrice()">
937
+ İzolasyon (+150₺)
938
+ </label>
939
+ </div>
940
+ </div>
941
+ </form>
942
+ </div>
943
+
944
+ <div class="calculator-result">
945
+ <h3>Hesaplanan Fiyat</h3>
946
+ <div class="price-display" id="totalPrice">0 ₺</div>
947
+ <div class="price-details" id="priceDetails">
948
+ Lütfen ölçüleri ve seçenekleri girin
949
+ </div>
950
+ </div>
951
  </div>
952
  </section>
953
 
 
956
  <div class="section-header">
957
  <h2 class="section-title">Üretim Takibi</h2>
958
  </div>
959
+ <div class="table-container">
960
+ <table>
961
+ <thead>
962
+ <tr>
963
+ <th>Sipariş No</th>
964
+ <th>Müşteri</th>
965
+ <th>Operasyon</th>
966
+ <th>Başlangıç</th>
967
+ <th>Bitiş</th>
968
+ <th>Durum</th>
969
+ <th>İlerleme</th>
970
+ </tr>
971
+ </thead>
972
+ <tbody>
973
+ <tr>
974
+ <td>#2024002</td>
975
+ <td>Ayşe Demir</td>
976
+ <td>Kesim</td>
977
+ <td>08:00</td>
978
+ <td>10:30</td>
979
+ <td><span class="status-badge status-completed">Tamamlandı</span></td>
980
+ <td>100%</td>
981
+ </tr>
982
+ <tr>
983
+ <td>#2024004</td>
984
+ <td>Zeynep Ak</td>
985
+ <td>Montaj</td>
986
+ <td>11:00</td>
987
+ <td>Devamıyor</td>
988
+ <td><span class="status-badge status-processing">İşlemde</span></td>
989
+ <td>65%</td>
990
+ </tr>
991
+ <tr>
992
+ <td>#2024003</td>
993
+ <td>Mehmet Kaya</td>
994
+ <td>Bekliyor</td>
995
+ <td>-</td>
996
+ <td>-</td>
997
+ <td><span class="status-badge status-pending">Beklemede</span></td>
998
+ <td>0%</td>
999
+ </tr>
1000
+ </tbody>
1001
+ </table>
1002
  </div>
1003
  </section>
1004
 
 
1007
  <div class="section-header">
1008
  <h2 class="section-title">Malzeme Stok</h2>
1009
  </div>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1010
  <div class="table-container">
1011
  <table>
1012
  <thead>
1013
  <tr>
1014
+ <th>Malzeme</th>
1015
+ <th>Tür</th>
1016
+ <th>Stok Miktarı</th>
1017
+ <th>Birim</th>
1018
+ <th>Kritik Seviye</th>
1019
+ <th>Son Güncelleme</th>
1020
  <th>Durum</th>
 
1021
  </tr>
1022
  </thead>
1023
+ <tbody>
1024
+ <tr>
1025
+ <td>PVC Profil</td>
1026
+ <td>Çerçeve</td>
1027
+ <td>450</td>
1028
+ <td>Metre</td>
1029
+ <td>200</td>
1030
+ <td>20.01.2024</td>
1031
+ <td><span class="status-badge status-active">Stokta</span></td>
1032
+ </tr>
1033
+ <tr>
1034
+ <td>Cam</td>
1035
+ <td>4mm</td>
1036
+ <td>120</td>
1037
+ <td>m²</td>
1038
+ <td>50</td>
1039
+ <td>19.01.2024</td>
1040
+ <td><span class="status-badge status-active">Stokta</span></td>
1041
+ </tr>
1042
+ <tr>
1043
+ <td>Kilit Mekanizma</td>
1044
+ <td>Standart</td>
1045
+ <td>35</td>
1046
+ <td>Adet</td>
1047
+ <td>30</td>
1048
+ <td>18.01.2024</td>
1049
+ <td><span class="status-badge status-pending">Düşük Stok</span></td>
1050
+ </tr>
1051
+ <tr>
1052
+ <td>Conta</td>
1053
+ <td>Siyah</td>
1054
+ <td>850</td>
1055
+ <td>Metre</td>
1056
+ <td>100</td>
1057
+ <td>20.01.2024</td>
1058
+ <td><span class="status-badge status-active">Stokta</span></td>
1059
+ </tr>
1060
  </tbody>
1061
  </table>
1062
+ </