File size: 8,668 Bytes
5e07f18
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
{% extends "base.html" %}

{% block title %}إنشاء حساب{% endblock %}

{% block content %}
<div class="auth-container">
    <h2>إنشاء حساب جديد</h2>
    <form id="registerForm" method="POST" action="{{ url_for('register') }}">
        <div class="form-group">
            <label for="username">اسم المستخدم</label>
            <input type="text" id="username" name="username" required>
            <small class="form-text">سيتم إضافة @moltka.eg تلقائياً</small>
            <span id="username-validation-message"></span>
        </div>

        <div class="form-group">
            <label for="password">كلمة المرور</label>
            <input type="password" id="password" name="password" required>
            <div id="password-strength" class="strength-meter"></div>
        </div>

        <div class="form-group">
            <label for="confirm_password">تأكيد كلمة المرور</label>
            <input type="password" id="confirm_password" name="confirm_password" required>
            <span id="password-match-message"></span>
        </div>

        <div class="form-group">
            <label for="profession">المجال المهني</label>
            <select id="profession" name="profession" required>
                <option value="">اختر المجال المهني</option>
                <option value="مطور ويب">مطور ويب</option>
                <option value="مطور واجهة خلفية">مطور واجهة خلفية</option>
                <option value="برمجة">برمجة</option>
                <option value="مطور ألعاب">مطور ألعاب</option>
                <option value="مطور أندرويد">مطور أندرويد</option>
                <option value="مطور iOS">مطور iOS</option>
                <option value="مهندس">مهندس</option>
                <option value="طبيب">طبيب</option>
                <option value="علوم اجتماعية">علوم اجتماعية</option>
                <option value="معلم">معلم</option>
                <option value="محاسب">محاسب</option>
                <option value="صحفي">صحفي</option>
                <option value="محامي">محامي</option>
                <option value="مصمم جرافيكي">مصمم جرافيكي</option>
                <option value="مصور">مصور</option>
                <option value="كاتب">كاتب</option>
                <option value="مدرب رياضي">مدرب رياضي</option>
                <option value="طاهي">طاهي</option>
                <option value="ديني">ديني</option>
                <option value="شاعر">شاعر</option>
                <option value="رسام">رسام</option>
                <option value="محلل مالي">محلل مالي</option>
                <option value="فني صيانة">فني صيانة</option>
                <option value="باحث">باحث</option>
                <option value="IT">IT</option>
            </select>
        </div>

        <div class="form-group">
            <label>المهارات</label>
            <div id="skills-container">
                <div class="skill-input">
                    <input type="text" name="skill" class="skill-field">
                    <button type="button" class="add-skill">+</button>
                </div>
            </div>
            <input type="hidden" id="skills" name="skills">
        </div>

        <div class="form-group">
            <label for="security_question">سؤال الأمان</label>
            <select id="security_question" name="security_question" required>
                <option value="">اختر سؤال الأمان</option>
                <option value="ما اسم مدرستك الأولى؟">ما اسم مدرستك الأولى؟</option>
                <option value="ما اسم حيوانك الأليف الأول؟">ما اسم حيوانك الأليف الأول؟</option>
                <option value="ما هي مدينتك المفضلة؟">ما هي مدينتك المفضلة؟</option>
                <option value="ما اسم أفضل صديق في طفولتك؟">ما اسم أفضل صديق في طفولتك؟</option>
            </select>
        </div>

        <div class="form-group">
            <label for="security_answer">إجابة سؤال الأمان</label>
            <input type="text" id="security_answer" name="security_answer" required>
        </div>

        <button type="submit" class="submit-btn">إنشاء الحساب</button>
    </form>
    <div class="auth-links">
        <p>لديك حساب بالفعل؟ <a href="{{ url_for('login') }}">تسجيل الدخول</a></p>
    </div>
</div>
{% endblock %}

{% block scripts %}
<script>

$(document).ready(function() {

    // Username validation

    $('#username').on('input', function() {

        const username = $(this).val();

        if (username) {

            $.get('/validate-username', { username: username }, function(data) {

                if (data.exists) {

                    $('#username-validation-message').text('اسم المستخدم مستخدم بالفعل').addClass('error').removeClass('success');

                } else {

                    $('#username-validation-message').text('اسم المستخدم متاح').addClass('success').removeClass('error');

                }

            });

        }

    });



    // Password matching validation

    $('#confirm_password').on('input', function() {

        const password = $('#password').val();

        const confirmPassword = $(this).val();

        

        if (password === confirmPassword) {

            $('#password-match-message').text('كلمات المرور متطابقة').addClass('success').removeClass('error');

        } else {

            $('#password-match-message').text('كلمات المرور غير متطابقة').addClass('error').removeClass('success');

        }

    });



    // Password strength

    $('#password').on('input', function() {

        const password = $(this).val();

        let strength = 0;

        

        if (password.length >= 8) strength++;

        if (/[A-Z]/.test(password)) strength++;

        if (/[a-z]/.test(password)) strength++;

        if (/[0-9]/.test(password)) strength++;

        if (/[^A-Za-z0-9]/.test(password)) strength++;



        const strengthMeter = $('#password-strength');

        strengthMeter.removeClass('weak medium strong');

        

        if (strength <= 2) {

            strengthMeter.text('ضعيف').addClass('weak');

        } else if (strength <= 4) {

            strengthMeter.text('متوسط').addClass('medium');

        } else {

            strengthMeter.text('قوي').addClass('strong');

        }

    });



    // Skills management

    $('.add-skill').click(function() {

        const skillValue = $(this).siblings('.skill-field').val(); // Get the current skill value

        if (skillValue.trim() !== "") {

            const skillInput = `

                <div class="skill-input">

                    <input type="text" name="skill" class="skill-field" value="${skillValue}">

                    <button type="button" class="remove-skill">-</button>

                </div>

            `;

            $('#skills-container').append(skillInput);

            $(this).siblings('.skill-field').val(""); // Clear the input field

        }

    });



    $(document).on('click', '.remove-skill', function() {

        $(this).parent().remove();

    });



    // Form submission

    $('#registerForm').on('submit', function(e) {

        const skills = [];

        $('.skill-field').each(function() {

            const skill = $(this).val().trim();

            if (skill) {

                skills.push(skill);

            }

        });

        $('#skills').val(JSON.stringify(skills));



        const password = $('#password').val();

        const confirmPassword = $('#confirm_password').val();

        

        if (password !== confirmPassword) {

            e.preventDefault();

            alert('كلمات المرور غير متطابقة');

            return;

        }



        const username = $('#username').val().trim();

        if (!username) {

            e.preventDefault();

            alert('الرجاء إدخال اسم المستخدم');

            return;

        }

    });

});

</script>
{% endblock %}