Quantcast
Viewing all articles
Browse latest Browse all 8068

Android modal window problem

(using titanium 3.0.2, SDK 2.2)

I'm having an odd interface glitch happening (as if the two windows are swapping with each other for half a sec, then display normally) when I open my modal window on top of another modal window.

This is the window below the one I'm opening (which is opened the same way)

(search 'container' for where I'm opening the window.)

function bully() {

    var DB = require('/ui/common/CCISD/DB/db');
    var DatePickers = require('datePickers');
    var addbully = require('addbully');

    var bully = Ti.UI.createView();

    //images
    var BG = '/ui/common/images/UI/CCISD_iPad_background.png';

    //local variables
    var windowWidth = Titanium.Platform.displayCaps.platformWidth;
    var windowHeight = Titanium.Platform.displayCaps.platformHeight;
    var setLeft = '13%';
    var setWidth = '74%';
    var setHeight = '43dp';
    var db = new DB();
    var datePickers = new DatePickers();

    //report data arrays
    var witnessIndex = null;
    var witnessData = [];
    var totalReport = [];

    /***********
     * top label
     ***********/
    var topLabel = Ti.UI.createImageView({
        image : '/ui/common/images/UI/iPhone_TopBar_asset.png',
        top : 0,
        width : '100%',
        height : windowHeight * .10
    });

    var topText = Ti.UI.createLabel({
        top : 0,
        width : '100%',
        height : windowHeight * .10,
        color : 'white',
        text : 'Report-A-Bully',
        textAlign : Ti.UI.TEXT_ALIGNMENT_CENTER,
        font : {
            fontSize : '30sp'
        }
    });

    //scrollable view
    var scrollView = Ti.UI.createScrollView({
        contentWidth : 'auto',
        contentHeight : 'auto',
        showVerticalScrollIndicator : true,
        top : '10%',
        layout : 'vertical'
    });

    /************************
     ****** First Name ******
     ************************/
    var firstNameField = Ti.UI.createTextField({
        borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
        hintText : 'First Name',
        top : '3%',
        left : setLeft,
        width : setWidth,
        height : setHeight
    });

    //fixes keyboard on open
    var first = true;
    firstNameField.addEventListener('focus', function f(e) {
        if (first) {
            first = false;
            firstNameField.blur();
        } else {
            firstNameField.removeEventListener('focus', f);
        }
    });

    /***********************
     ****** Last Name ******
     ***********************/
    var lastNameField = Ti.UI.createTextField({
        borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
        hintText : 'Last Name',
        top : '1%',
        left : setLeft,
        width : setWidth,
        height : setHeight,
    });

    /*************************
     ****** Role Picker ******
     *************************/
    var rolePicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        height : setHeight,
    });

    //Database Calls for roles
    db.Connect('ccisd_mobile', '/ui/common/ccisd_mobile.db');
    db.Query('SELECT * FROM PersonType');
    db.Close();

    var roleData = db.getRoleArray();

    rolePicker.add(roleData);
    rolePicker.selectionIndicator = true;

    /*******************
     ****** Email ******
     *******************/
    var emailField = Ti.UI.createTextField({
        borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
        hintText : 'Email Address',
        top : '1%',
        left : setLeft,
        width : setWidth,
        height : setHeight,
    });

    /*******************
     ****** Phone ******
     *******************/
    var phoneField = Ti.UI.createTextField({
        borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
        hintText : 'Phone #',
        top : '1%',
        left : setLeft,
        width : setWidth,
        height : setHeight,
    });

    /***************************
     ****** Campus Picker ******
     ***************************/
    var campusPicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        height : setHeight,
    });

    //Database Calls for campus
    db.Connect('ccisd_mobile', '/ui/common/ccisd_mobile.db');
    db.Query('SELECT * FROM IncidentBuilding');
    db.Close();

    campusData = db.getCampusArray();

    campusPicker.add(campusData);
    campusPicker.selectionIndicator = true;

    /**************************
     ****** Grade Picker ******
     **************************/
    var gradePicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        height : setHeight,
    });

    //Database Calls for grades
    db.Connect('ccisd_mobile', '/ui/common/ccisd_mobile.db');
    db.Query('SELECT * FROM AttendeeGrade');
    db.Close();

    gradeData = db.getGradeArray();

    gradePicker.add(gradeData);
    gradePicker.selectionIndicator = true;

    /*************************
     ****** Date Labels ******
     *************************/
    var dateOccuredLabel = Titanium.UI.createLabel({
        color : '#fff',
        text : 'Day Event Occured?',
        font : {
            fontFamily : 'Arial',
            fontSize : '18sp',
            fontWeight : 'bold'
        },
        textAlign : 'center',
        width : 'auto',
        top : '1%',
    });

    var datePickerLabel = Titanium.UI.createLabel({
        color : '#fff',
        font : {
            fontFamily : 'Arial',
            fontSize : '18sp',
            fontWeight : 'bold'
        },
        textAlign : Ti.UI.TEXT_ALIGNMENT_LEFT,
        text : 'Month         Day             Year',
        width : 'auto',
        top : '1%',
    });

    /***************************
     ****** Date Pickers *******
     ***************************/

    var monthPicker = Ti.UI.createPicker({
        top : '1%',
        width : '24%',
        height : setHeight,
        left : '13%'
    });

    var dayPicker = Ti.UI.createPicker({
        top : '1%',
        width : '24%',
        height : setHeight,
        left : '35%'
    });

    var yearPicker = Ti.UI.createPicker({
        top : '1%',
        width : '30%',
        height : setHeight,
        right : '13%'
    });

    //populate month
    var month = datePickers.getMonth();
    monthPicker.add(month);
    monthPicker.selectionIndicator = true;

    //populate day
    var day = datePickers.getDay((1));
    dayPicker.add(day);
    dayPicker.selectionIndicator = true;

    //populate year
    var year = datePickers.getYear();
    yearPicker.add(year);
    yearPicker.selectionIndicator = true;

    var datePickerContainer = Ti.UI.createView({
        height : setHeight,
        backgroundColor : 'transparent',
        top : '1%'
    });

    //event for change of month
    monthPicker.addEventListener('change', function(e) {

        datePickerContainer.setVisible(false);

        //remove previous days
        var _col = dayPicker.columns[0];
        for (var i = _col.getRowCount(); i >= 0; i--) {
            _col.removeRow(_col.rows[i]);
        }

        //re-populate
        day = datePickers.getDay((e.rowIndex + 1));
        dayPicker.add(day);

        datePickerContainer.setVisible(true);
    });

    /*************************
     ****** Time Picker ******
     *************************/
    var timePicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        height : setHeight,
    });

    var timeData = [];

    //Database Calls for time
    db.Connect('ccisd_mobile', '/ui/common/ccisd_mobile.db');
    db.Query('SELECT * FROM IncidentTime');
    db.Close();

    timeData = db.getTimeArray();
    timePicker.add(timeData);
    timePicker.selectionIndicator = true;

    /**************************
     ****** Where Picker ******
     **************************/
    var wherePicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        height : setHeight,
    });

    var whereData = [];

    //Database Calls for campus
    db.Connect('ccisd_mobile', '/ui/common/ccisd_mobile.db');
    db.Query('SELECT * FROM IncidentBuilding');
    db.Close();

    whereData = db.getCampusArray();
    wherePicker.add(whereData);
    wherePicker.selectionIndicator = true;

    var descriptionTextArea = Ti.UI.createTextArea({
        textAlign : 'left',
        hintText : 'Please describe the incident and location (Cafeteria, Hallway, Restroom, Playground, etc)',
        top : '1%',
        width : setWidth,
        height : 300
    });

    /*******************************
     ******** WITNESS TABLE ********
     *******************************/
    var witnessTable = [];

    var witnessPicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        selectionIndicator : true
    });

    var witnessDefault = Ti.UI.createPickerRow({
        title : 'add person: '
    });

    witnessTable.push(witnessDefault);
    witnessPicker.add(witnessTable);

    witnessPicker.addEventListener('change', function(e) {
        if (witnessPicker.getSelectedRow(0).getTitle() !== 'add person: ') {

            addPersonBtn.setTitle('Edit Person');
            witnessIndex = e.rowIndex - 1;

        } else {
            addPersonBtn.setTitle('Add Person');
            witnessIndex = null;
        }
    });

    /****************************
     ******** ADD PERSON ********
     ****************************/
    var addPersonBtn = Titanium.UI.createButton({
        width : setWidth,
        height : setHeight,
        backgroundColor : '#D0463F',
        font : {
            fontSize : '18sp',
            fontWeight : 'bold'
        },
        title : 'Add Person',
        color : '#fff',
        borderRadius : 5,
        top : '1%',
    });

    addPersonBtn.addEventListener('click', function(e) {

        //creating an add person window
        var AddBully = new addbully(witnessData, witnessTable, witnessIndex);
        var bullyContainer = Titanium.UI.createWindow({
            backgroundImage : BG,
            navBarHidden : true,
            fullscreen : false,
            modal : true
        });

        bullyContainer.add(AddBully);
        bullyContainer.open();

        Ti.App.addEventListener('closeAddBully', function(e) {
            bullyContainer.close();

            addPersonBtn.title = 'Add Person';

            //remove previous added persons
            var _col = witnessPicker.columns[0];
            for (var i = _col.getRowCount(); i >= 0; i--) {
                _col.removeRow(_col.rows[i]);
            }

            //re-populate added persons
            witnessPicker.add(witnessTable);

        });
    });

    var submitBtn = Titanium.UI.createButton({
        width : setWidth,
        height : setHeight,
        backgroundColor : '#57B057',
        font : {
            fontSize : '18sp',
            fontWeight : 'bold'
        },
        title : 'Submit', //Define the text on button
        color : '#fff',
        borderRadius : 5,
        top : '1%',
        bottom : '10%'
    });

    submitBtn.addEventListener('click', function(e) {

        if (dayPicker.getSelectedRow(0).getTitle() !== '0' && timePicker.getSelectedRow(0).getTitle() !== 'Time: ' && wherePicker.getSelectedRow(0).getTitle() !== 'Campus: ' && descriptionTextArea.value !== 'Please describe the incident and location (Cafeteria, Hallway, Restroom, Playground, etc)') {

            var dialog = Ti.UI.createAlertDialog({
                cancel : 1,
                buttonNames : ['Submit', 'Cancel'],
                message : 'Are you sure you want to submit?',
                title : 'Submit Report'
            });

            dialog.addEventListener('click', function(e) {

                if (e.index === e.source.cancel) {
                    //do nothing
                } else {

                    //submit witness data to report
                    totalReport.push({
                        firstName : firstNameField.value === 'First Name' ? null : firstNameField.value,
                        lastName : lastNameField.value === 'Last Name' ? null : lastNameField.value,
                        role : rolePicker.getSelectedRow(0).getTitle(),
                        email : emailField.value === 'Email Address' ? null : emailField.value,
                        phone : phoneField.value === 'Phone #' ? null : phoneField.value,
                        campus : campusPicker.getSelectedRow(0).getTitle(),
                        grade : gradePicker.getSelectedRow(0).getTitle() === 'Grade' ? null : gradePicker.getSelectedRow(0).getTitle(),
                        date : monthPicker.getSelectedRow(0).getTitle() + '/' + dayPicker.getSelectedRow(0).getTitle() + '/' + yearPicker.getSelectedRow(0).getTitle(), //required
                        time : timePicker.getSelectedRow(0).getTitle(), //required
                        where : wherePicker.getSelectedRow(0).getTitle(), //required
                        description : descriptionTextArea.value === 'Please describe the incident and location (Cafeteria, Hallway, Restroom, Playground, etc)' ? null : descriptionTextArea.value //required
                    });

                    //if additional witnesses
                    if (witnessData.length > 0) {

                        //add additional witnesses to report
                        for (var i = 0; i < witnessData.length; i++) {
                            totalReport.push(witnessData[i]);
                        }
                    }

                    /***test for final report***/
                    // alert('-- Report-A-Bully Test Report --\n'+
                    // '\nFirst Name: ' + totalReport[0].firstName +
                    // '\nLast Name: ' + totalReport[0].lastName +
                    // '\nRole: ' + totalReport[0].role +
                    // '\nEmail: ' + totalReport[0].email +
                    // '\nPhone: ' + totalReport[0].phone +
                    // '\nCampus: ' + totalReport[0].campus +
                    // '\nGrade: ' + totalReport[0].grade +
                    // '\nDate: ' + totalReport[0].date +
                    // '\nTime: ' + totalReport[0].time +
                    // '\nWhere: ' + totalReport[0].where +
                    // '\nDescription: ' + totalReport[0].description);

                    /***test for added persons***/
                    // var witnessIndexValue = 1;
                    // if (witnessData.length > 0) {
                    // alert('-- Added Persons Test --\n' +
                    // '\nFirst Name: ' + totalReport[witnessIndexValue].firstName +
                    // '\nLast Name: ' + totalReport[witnessIndexValue].lastName +
                    // '\nRole: ' + totalReport[witnessIndexValue].role +
                    // '\nGender: ' + totalReport[witnessIndexValue].gender +
                    // '\nEthnicity: ' + totalReport[witnessIndexValue].race +
                    // '\nCampus: ' + totalReport[witnessIndexValue].campus +
                    // '\nGrade: ' + totalReport[witnessIndexValue].grade +
                    // '\nknowPerson: ' + totalReport[witnessIndexValue].knowPerson +
                    // '\nDescription: ' + totalReport[witnessIndexValue].description);
                    // }
                }
            });

            dialog.show();

        } else {
            alert('Please enter all required information:\n\nDate, Time, Campus, Description');
        }
    });

    scrollView.add(firstNameField);
    scrollView.add(lastNameField);
    scrollView.add(rolePicker);
    scrollView.add(emailField);
    scrollView.add(phoneField);
    scrollView.add(campusPicker);
    scrollView.add(gradePicker);
    scrollView.add(dateOccuredLabel);
    scrollView.add(datePickerLabel);

    datePickerContainer.add(monthPicker);
    datePickerContainer.add(dayPicker);
    datePickerContainer.add(yearPicker);

    scrollView.add(datePickerContainer);
    scrollView.add(timePicker);
    scrollView.add(wherePicker);
    scrollView.add(descriptionTextArea);

    scrollView.add(witnessPicker);
    scrollView.add(addPersonBtn);
    scrollView.add(submitBtn);

    bully.add(scrollView);
    bully.add(topLabel);
    bully.add(topText);

    return bully;
};

module.exports = bully;
and this is the window I am opening:
function addbully(witnessData, witnessTable, witnessIndex) {

    var DB = require('/ui/common/CCISD/DB/db');

    var addbully = Ti.UI.createView();

    var windowWidth = Titanium.Platform.displayCaps.platformWidth;
    var windowHeight = Titanium.Platform.displayCaps.platformHeight;
    var setLeft = '13%';
    var setWidth = '74%';
    var setHeight = '43dp';
    var db = new DB();

    /***********
     * top label
     ***********/
    var topLabel = Ti.UI.createImageView({
        image : '/ui/common/images/UI/iPhone_TopBar_asset.png',
        top : 0,
        width : '100%',
        height : windowHeight * .10
    });

    var topText = Ti.UI.createLabel({
        top : 0,
        width : '100%',
        height : windowHeight * .10,
        color : 'white',
        text : 'Add Witness',
        textAlign : Ti.UI.TEXT_ALIGNMENT_CENTER,
        font : {
            fontSize : '30sp'
        }
    });

    //scrollable view
    var scrollView = Ti.UI.createScrollView({
        contentWidth : 'auto',
        contentHeight : 'auto',
        showVerticalScrollIndicator : true,
        top : '10%',
        layout : 'vertical'
    });

    /************************
     ****** First Name ******
     ************************/
    var firstNameField = Ti.UI.createTextField({
        borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
        hintText : 'First Name',
        top : '3%',
        left : setLeft,
        width : setWidth,
        height : setHeight,
    });

    //fixes keyboard on open
    var first = true;
    firstNameField.addEventListener('focus', function f(e) {
        if (first) {
            first = false;
            firstNameField.blur();
        } else {
            firstNameField.removeEventListener('focus', f);
        }
    });

    /***********************
     ****** Last Name ******
     ***********************/
    var lastNameField = Ti.UI.createTextField({
        borderStyle : Ti.UI.INPUT_BORDERSTYLE_ROUNDED,
        hintText : 'Last Name',
        top : '1%',
        left : setLeft,
        width : setWidth,
        height : setHeight,
    });

    /*************************
     ****** Role Picker ******
     *************************/
    var rolePicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        height : setHeight,
    });

    //Database Calls for roles
    db.Connect('ccisd_mobile', '/ui/common/ccisd_mobile.db');
    db.Query('SELECT * FROM PersonType');
    db.Close();

    var roleData = db.getRoleArray();

    rolePicker.add(roleData);
    rolePicker.selectionIndicator = true;

    /***************************
     ****** Gender Picker ******
     ***************************/
    var genderPicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        height : setHeight,
    });

    var genderData = [];
    genderData[0] = Ti.UI.createPickerRow({
        title : 'Gender: ',
        id : 0
    });
    genderData[1] = Ti.UI.createPickerRow({
        title : 'Male',
        id : 1
    });
    genderData[2] = Ti.UI.createPickerRow({
        title : 'Female',
        id : 2
    });

    genderPicker.add(genderData);
    genderPicker.selectionIndicator = true;

    /**************************
     ****** Grade Picker ******
     **************************/
    var gradePicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        height : setHeight,
    });

    //Database Calls for grades
    db.Connect('ccisd_mobile', '/ui/common/ccisd_mobile.db');
    db.Query('SELECT * FROM AttendeeGrade');
    db.Close();

    gradeData = db.getGradeArray();

    gradePicker.add(gradeData);
    gradePicker.selectionIndicator = true;

    /********************************
     ****** Know Person Picker ******
     ********************************/
    var knowPersonPicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        height : setHeight,
    });

    var knowPersonData = [];
    knowPersonData[0] = Ti.UI.createPickerRow({
        title : 'Do you know this person?:',
        id : 0
    });
    knowPersonData[1] = Ti.UI.createPickerRow({
        title : 'Yes',
        id : 1
    });
    knowPersonData[2] = Ti.UI.createPickerRow({
        title : 'No',
        id : 2
    });

    knowPersonPicker.add(knowPersonData);
    knowPersonPicker.selectionIndicator = true;

    /*******************************
     ****** Ethinicity Picker ******
     ******************************/
    var ethnicityPicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        height : setHeight,
    });

    //Database Calls for ethnicity
    db.Connect('ccisd_mobile', '/ui/common/ccisd_mobile.db');
    db.Query('SELECT * FROM AttendeeEthnicity');
    db.Close();

    var ethnicityData = db.getEthnicityArray();

    ethnicityPicker.add(ethnicityData);
    ethnicityPicker.selectionIndicator = true;

    /***************************
     ****** Where Picker ******
     ***************************/
    var campusPicker = Ti.UI.createPicker({
        top : '1%',
        width : setWidth,
        height : setHeight,
    });

    var whereData = [];

    //Database Calls for campus
    db.Connect('ccisd_mobile', '/ui/common/ccisd_mobile.db');
    db.Query('SELECT * FROM IncidentBuilding');
    db.Close();

    whereData = db.getCampusArray();

    campusPicker.add(whereData);
    campusPicker.selectionIndicator = true;

    /*************************
     ****** Description ******
     *************************/
    var personDescriptionTextArea = Ti.UI.createTextArea({
        textAlign : 'left',
        hintText : 'Please describe the incident and location (Cafeteria, Hallway, Restroom, Playground, etc)',
        top : '1%',
        width : setWidth,
        height : 200
    });

    /**********************************
     ****** Check if Edit Person ******
     **********************************/
    if (witnessIndex != null) {
        firstNameField.value = witnessData[witnessIndex].firstName;
        lastNameField.value = witnessData[witnessIndex].lastName;
        rolePicker.setSelectedRow(0, witnessData[witnessIndex].roleRow);
        genderPicker.setSelectedRow(0, witnessData[witnessIndex].genderRow);
        gradePicker.setSelectedRow(0, witnessData[witnessIndex].gradeRow);
        knowPersonPicker.setSelectedRow(0, witnessData[witnessIndex].knowPersonRow);
        ethnicityPicker.setSelectedRow(0, witnessData[witnessIndex].raceRow);
        campusPicker.setSelectedRow(0, witnessData[witnessIndex].campusRow);
        personDescriptionTextArea.value = witnessData[witnessIndex].description;
    }

    /***************************
     ****** Submit Button ******
     ***************************/
    var submitBtn = Titanium.UI.createButton({
        width : setWidth, //define the width of button
        height : setHeight, //define height of the button
        backgroundColor : '#57B057',
        font : {
            fontSize : '18sp',
            fontWeight : 'bold'
        },
        title : 'Submit', //Define the text on button
        color : '#fff',
        borderRadius : 5,
        top : '1%',
        bottom : '10%'
    });

    //switch button function
    if (witnessIndex != null) {
        submitBtn.title = "Save";
    }

    submitBtn.addEventListener('click', function(e) {

        //data validation
        if (rolePicker.getSelectedRow(0).getTitle() !== 'Role: ' && genderPicker.getSelectedRow(0).getTitle() !== 'Gender: ' && ethnicityPicker.getSelectedRow(0).getTitle() !== 'Ethnicity: ' && campusPicker.getSelectedRow(0).getTitle() !== 'Campus: ') {

            var dialog = Ti.UI.createAlertDialog({
                cancel : 1,
                buttonNames : ['Submit', 'Cancel'],
                message : 'Are you sure you want to submit?',
                title : 'Submit Person'
            });

            dialog.addEventListener('click', function(e) {

                if (e.index === e.source.cancel) {
                    //do nothing
                } else {

                    //switch button function
                    if (witnessIndex != null) {

                        //saving values of text fields to variables
                        witnessData[witnessIndex] = {
                            firstName : firstNameField.value === 'First Name' ? null : firstNameField.value,
                            lastName : lastNameField.value === 'Last Name' ? null : lastNameField.value,
                            role : rolePicker.getSelectedRow(0).getTitle(), //required
                            roleRow : rolePicker.getSelectedRow(0).id,
                            gender : genderPicker.getSelectedRow(0).getTitle(), //required
                            genderRow : genderPicker.getSelectedRow(0).id,
                            grade : gradePicker.getSelectedRow(0).getTitle() === 'Grade' ? null : gradePicker.getSelectedRow(0).getTitle(),
                            gradeRow : gradePicker.getSelectedRow(0).id,
                            knowPerson : knowPersonPicker.getSelectedRow(0).getTitle(),
                            knowPersonRow : knowPersonPicker.getSelectedRow(0).id,
                            race : ethnicityPicker.getSelectedRow(0).getTitle(), //required
                            raceRow : ethnicityPicker.getSelectedRow(0).id,
                            campus : campusPicker.getSelectedRow(0).getTitle(), //required
                            campusRow : campusPicker.getSelectedRow(0).id,
                            description : personDescriptionTextArea.value === 'Please describe the incident and location (Cafeteria, Hallway, Restroom, Playground, etc)' ? null : personDescriptionTextArea.value
                        };

                        //rename picker row if name/role changed
                        witnessTable[witnessIndex + 1].title = firstNameField.value + ' - ' + rolePicker.getSelectedRow(0).getTitle();

                    } else {

                        //saving values of text fields to variables
                        witnessData.push({
                            firstName : firstNameField.value === 'First Name' ? null : firstNameField.value,
                            lastName : lastNameField.value === 'Last Name' ? null : lastNameField.value,
                            role : rolePicker.getSelectedRow(0).getTitle(), //required
                            roleRow : rolePicker.getSelectedRow(0).id,
                            gender : genderPicker.getSelectedRow(0).getTitle(), //required
                            genderRow : genderPicker.getSelectedRow(0).id,
                            grade : gradePicker.getSelectedRow(0).getTitle() === 'Grade' ? null : gradePicker.getSelectedRow(0).getTitle(),
                            gradeRow : gradePicker.getSelectedRow(0).id,
                            knowPerson : knowPersonPicker.getSelectedRow(0).getTitle(),
                            knowPersonRow : knowPersonPicker.getSelectedRow(0).id,
                            race : ethnicityPicker.getSelectedRow(0).getTitle(), //required
                            raceRow : ethnicityPicker.getSelectedRow(0).id,
                            campus : campusPicker.getSelectedRow(0).getTitle(), //required
                            campusRow : campusPicker.getSelectedRow(0).id,
                            description : personDescriptionTextArea.value === 'Please describe the incident and location (Cafeteria, Hallway, Restroom, Playground, etc)' ? null : personDescriptionTextArea.value
                        });

                        //push person to witness table
                        var thisPerson = Ti.UI.createPickerRow({
                            title : firstNameField.value + ' - ' + rolePicker.getSelectedRow(0).getTitle(),
                        });

                        witnessTable.push(thisPerson);
                    }

                    Ti.App.fireEvent('closeAddBully');
                }
            });

            dialog.show();
        } else {
            alert('Please enter all required information:\n\nRole, Gender, Ethnicity, Campus');
        }
    });

    /***************************
     ****** Delete Button ******
     ***************************/
    if (witnessIndex != null) {

        submitBtn.setBottom(0);

        var deletePersonBtn = Titanium.UI.createButton({
            width : setWidth,
            height : setHeight,
            backgroundColor : '#D0463F',
            font : {
                fontSize : '18sp',
                fontWeight : 'bold'
            },
            title : 'Delete',
            color : '#fff',
            borderRadius : 5,
            top : '1.5%',
            bottom : '10%'
        });

        deletePersonBtn.addEventListener('click', function(e) {

            var dialog = Ti.UI.createAlertDialog({
                cancel : 1,
                buttonNames : ['Delete', 'Cancel'],
                message : 'Are you sure you want to delete?',
                title : 'Delete Person'
            });

            dialog.addEventListener('click', function(e) {
                witnessData.splice(witnessIndex, 1);
                witnessTable.splice(witnessIndex + 1, 1);

                Ti.App.fireEvent('closeAddBully');
            });

            dialog.show();
        });
    }

    scrollView.add(firstNameField);
    scrollView.add(lastNameField);
    scrollView.add(rolePicker);
    scrollView.add(genderPicker);
    scrollView.add(gradePicker)
    scrollView.add(knowPersonPicker);
    scrollView.add(ethnicityPicker);
    scrollView.add(campusPicker);
    scrollView.add(personDescriptionTextArea);
    scrollView.add(submitBtn);

    if (witnessIndex != null) {
        scrollView.add(deletePersonBtn);
    }

    addbully.add(scrollView);
    addbully.add(topLabel);
    addbully.add(topText);

    return addbully;
};

module.exports = addbully;

Viewing all articles
Browse latest Browse all 8068

Trending Articles