├── .gitignore ├── README.md └── plugins ├── frontlinesms-core ├── .gitignore ├── FrontlinesmsCoreGrailsPlugin.groovy ├── README.md ├── application.properties ├── asdf │ └── routes.dot ├── bails ├── do │ ├── README │ ├── add_current_user_to_dialout_group │ ├── add_launcher_without_splash │ ├── add_snapshot_to_install_resource_directories │ ├── bisectGrailsTests.groovy │ ├── build_deploy │ ├── build_deploy_plugin │ ├── build_installers_with_migrations_disabled │ ├── build_uninstall_install_test │ ├── check_for_bad_resource_tags │ ├── check_for_bad_template_renders │ ├── check_for_camelprocessors_using_def │ ├── check_for_ignored_tests │ ├── check_for_metaclass_in_non-unit_tests │ ├── check_for_missing_fa_class │ ├── check_for_popups_without_loading_image │ ├── check_for_setInterval_calls │ ├── check_for_snapshot_dependencies │ ├── check_for_static_simple_date_format │ ├── clean_naughty_camel │ ├── clear_serial_locks │ ├── codenarc_report_postprocess │ ├── create_sprint_build │ ├── csslint_report │ ├── db_dev │ ├── deploy_builds │ ├── deploy_builds_s3 │ ├── diff_and_open │ ├── disable_installer_compression │ ├── dropbox_deploy │ ├── enable_installer_compression │ ├── extract_js_from_gsps │ ├── functional_test_rewrite_report │ ├── functional_test_unflushed_saves_checker │ ├── functional_test_unsafe_text_calls_checker │ ├── help │ │ └── build │ ├── help_file_scan │ ├── i18n │ │ ├── check_for_bad_date_formats │ │ ├── compare │ │ ├── fill_with_placeholders │ │ ├── find_duplicates │ │ ├── merge │ │ └── report │ ├── install_property_change │ ├── install_property_to_release │ ├── install_property_to_snapshot │ ├── installer_dbmigration_disable │ ├── installer_dbmigration_enable │ ├── jenkins │ │ ├── after │ │ ├── before │ │ └── simulate │ ├── js_unit_test │ ├── js_unit_test_lib │ │ ├── xml_filter.groovy │ │ └── xml_split │ ├── js_unit_test_xml │ ├── jslint │ ├── jslint_for_gsp │ ├── jslint_json_to_xml │ ├── jslint_report │ ├── kill-grails │ ├── make_feature_branch │ ├── migration │ ├── migrations │ ├── mvn_install │ ├── optimise_images │ ├── plugin │ │ └── release │ ├── release │ ├── remove_snapshot_from_install_resource_directories │ ├── rm_plugin_excluded_files │ ├── routes_to_svg │ ├── simian_report │ ├── snapshots │ ├── test_and_backup │ ├── test_backup │ ├── test_bisect │ ├── test_functional │ ├── test_migrations │ ├── uninstall_install_test │ ├── upload_grails_plugin │ ├── virtualbox_deploy │ └── workOn ├── grails-app │ ├── conf │ │ ├── ApplicationResources.groovy │ │ ├── BuildConfig.groovy │ │ ├── Config.groovy │ │ ├── CoreBootStrap.groovy │ │ ├── CoreResources.groovy │ │ ├── CoreUrlMappings.groovy │ │ ├── DataSource.groovy │ │ ├── TestDataConfig.groovy │ │ ├── frontlinesms2 │ │ │ └── SecurityFilters.groovy │ │ ├── help │ │ │ ├── activities │ │ │ │ ├── 1.getting_around_activities.txt │ │ │ │ ├── 10.web_connection_api.txt │ │ │ │ ├── 11.custom_activity_builder │ │ │ │ ├── 11.custom_activity_builder.txt │ │ │ │ ├── 2.creating_an_activity.txt │ │ │ │ ├── 3.creating_a_poll.txt │ │ │ │ ├── 3a.manually_categorising.txt │ │ │ │ ├── 4.creating_an_announcement.txt │ │ │ │ ├── 5.creating_an_auto-reply.txt │ │ │ │ ├── 6.renaming_an_activity.txt │ │ │ │ ├── 7.exporting_an_activity.txt │ │ │ │ ├── 8.creating_an_autoforward.txt │ │ │ │ └── 9.creating_a_subscription.txt │ │ │ ├── archive │ │ │ │ ├── 1.getting_around_the_archive_tab.txt │ │ │ │ ├── 1a.inbox_archive.txt │ │ │ │ ├── 1b.sent_archive.txt │ │ │ │ ├── 1c.activity_archive.txt │ │ │ │ ├── 1d.folder_archive.txt │ │ │ │ ├── 2.archiving_messages.txt │ │ │ │ ├── 3.archiving_activities_folders.txt │ │ │ │ └── 4.unarchive.txt │ │ │ ├── contacts │ │ │ │ ├── 1.getting_around_the_contacts_tab.txt │ │ │ │ ├── 2.add_contact.txt │ │ │ │ ├── 2a.editing_a_contact.txt │ │ │ │ ├── 3.add_remove_a_custom_field.txt │ │ │ │ ├── 4.creating_a_group.txt │ │ │ │ ├── 5.creating_a_smart_group.txt │ │ │ │ ├── 6.add_remove_contact_to_from_a_group.txt │ │ │ │ ├── 7.messages_sent_or_received_by_contact.txt │ │ │ │ └── 8.searching_through_contacts.txt │ │ │ ├── features │ │ │ │ └── new.txt │ │ │ ├── folders │ │ │ │ ├── 1.getting_around_folders.txt │ │ │ │ └── 2.creating_a_folder.txt │ │ │ ├── messages │ │ │ │ ├── 1.getting_around_the_messages_tab.txt │ │ │ │ ├── 2.sss.txt │ │ │ │ ├── 3.quick_message.txt │ │ │ │ ├── 4.filtering_messages.txt │ │ │ │ ├── 5.sent.txt │ │ │ │ ├── 6.trash.txt │ │ │ │ ├── 7.pending.txt │ │ │ │ ├── 8.mrfd.txt │ │ │ │ └── 9.exporting.txt │ │ │ ├── search │ │ │ │ ├── 1.getting_around_the_search_tab.txt │ │ │ │ ├── 2.creating_a_search.txt │ │ │ │ └── 2a.creating_an_advanced_search.txt │ │ │ ├── settings │ │ │ │ ├── 1.getting_around_the_settings_menu.txt │ │ │ │ ├── 10.custom_routing_rules.txt │ │ │ │ ├── 11.contact_import.txt │ │ │ │ ├── 2.changing_languages.txt │ │ │ │ ├── 3.restoring_a_backup.txt │ │ │ │ ├── 4.setting_up_a_device.txt │ │ │ │ ├── 4a.intellisms.txt │ │ │ │ ├── 4b.clickatell.txt │ │ │ │ ├── 4c.connecting_to_frontlinesync.txt │ │ │ │ ├── 4d.finding_on_a_lan.txt │ │ │ │ ├── 5.manually_adding_device.txt │ │ │ │ ├── 6.edit_delete_connection.txt │ │ │ │ ├── 7.translatingfrontlinesms.txt │ │ │ │ ├── 8.basic_auth.txt │ │ │ │ ├── 9.smssync.txt │ │ │ │ └── smpp.txt │ │ │ └── status │ │ │ │ ├── 1.getting_around_the_status_tab.txt │ │ │ │ └── 2.using_the_traffic_graph.txt │ │ └── spring │ │ │ └── resources.groovy │ ├── controllers │ │ └── frontlinesms2 │ │ │ ├── ActivityController.groovy │ │ │ ├── AnnouncementController.groovy │ │ │ ├── ApiController.groovy │ │ │ ├── AppInfoController.groovy │ │ │ ├── ArchiveController.groovy │ │ │ ├── AutoforwardController.groovy │ │ │ ├── AutoreplyController.groovy │ │ │ ├── ConnectionController.groovy │ │ │ ├── ContactController.groovy │ │ │ ├── CustomactivityController.groovy │ │ │ ├── ErrorController.groovy │ │ │ ├── ExportController.groovy │ │ │ ├── FolderController.groovy │ │ │ ├── FrontlinesyncController.groovy │ │ │ ├── GroupController.groovy │ │ │ ├── HelpController.groovy │ │ │ ├── ImportController.groovy │ │ │ ├── InlineEditableController.groovy │ │ │ ├── MessageController.groovy │ │ │ ├── MissedCallController.groovy │ │ │ ├── PollController.groovy │ │ │ ├── QuickMessageController.groovy │ │ │ ├── SearchController.groovy │ │ │ ├── SettingsController.groovy │ │ │ ├── SmartGroupController.groovy │ │ │ ├── StatusController.groovy │ │ │ ├── SubscriptionController.groovy │ │ │ ├── SystemNotificationController.groovy │ │ │ └── WebconnectionController.groovy │ ├── domain │ │ └── frontlinesms2 │ │ │ ├── Activity.groovy │ │ │ ├── Announcement.groovy │ │ │ ├── Autoforward.groovy │ │ │ ├── Autoreply.groovy │ │ │ ├── ClickatellFconnection.groovy │ │ │ ├── Contact.groovy │ │ │ ├── CustomActivity.groovy │ │ │ ├── CustomField.groovy │ │ │ ├── Dispatch.groovy │ │ │ ├── EmailFconnection.groovy │ │ │ ├── Fconnection.groovy │ │ │ ├── Folder.groovy │ │ │ ├── ForwardActionStep.groovy │ │ │ ├── FrontlinesyncFconnection.groovy │ │ │ ├── GenericWebconnection.groovy │ │ │ ├── Group.groovy │ │ │ ├── GroupMembership.groovy │ │ │ ├── IntelliSmsFconnection.groovy │ │ │ ├── Interaction.groovy │ │ │ ├── JoinActionStep.groovy │ │ │ ├── Keyword.groovy │ │ │ ├── LeaveActionStep.groovy │ │ │ ├── LogEntry.groovy │ │ │ ├── MessageDetail.groovy │ │ │ ├── MessageOwner.groovy │ │ │ ├── MissedCall.groovy │ │ │ ├── NexmoFconnection.groovy │ │ │ ├── Poll.groovy │ │ │ ├── PollResponse.groovy │ │ │ ├── QueuedDispatch.groovy │ │ │ ├── ReplyActionStep.groovy │ │ │ ├── RequestParameter.groovy │ │ │ ├── Search.groovy │ │ │ ├── SmartGroup.groovy │ │ │ ├── SmppFconnection.groovy │ │ │ ├── SmslibFconnection.groovy │ │ │ ├── SmssyncFconnection.groovy │ │ │ ├── Step.groovy │ │ │ ├── StepProperty.groovy │ │ │ ├── Subscription.groovy │ │ │ ├── SystemNotification.groovy │ │ │ ├── TextMessage.groovy │ │ │ ├── Trash.groovy │ │ │ ├── UshahidiWebconnection.groovy │ │ │ ├── Webconnection.groovy │ │ │ └── WebconnectionActionStep.groovy │ ├── i18n │ │ ├── messages.properties │ │ ├── messages_ar.properties │ │ ├── messages_de.properties │ │ ├── messages_es.properties │ │ ├── messages_fr.properties │ │ ├── messages_in_ID.properties │ │ ├── messages_jp.properties │ │ ├── messages_km.properties │ │ ├── messages_nl.properties │ │ ├── messages_pt.properties │ │ ├── messages_ru.properties │ │ └── messages_sw.properties │ ├── jobs │ │ └── frontlinesms2 │ │ │ ├── ContactImportJob.groovy │ │ │ ├── EnableFconnectionJob.groovy │ │ │ ├── MessageSendJob.groovy │ │ │ ├── ReportSmssyncTimeoutJob.groovy │ │ │ ├── RouteDestroyJob.groovy │ │ │ └── UploadRegistrationDataJob.groovy │ ├── migrations │ │ ├── changelog-0.0.groovy │ │ ├── changelog-0.2.groovy │ │ ├── changelog-0.3.groovy │ │ ├── changelog-0.4.groovy │ │ ├── changelog-0.b2.groovy │ │ ├── changelog-1.0-rc2.groovy │ │ ├── changelog-1.0.groovy │ │ ├── changelog-2.0.groovy │ │ ├── changelog-3.0.groovy │ │ ├── changelog-3.1.groovy │ │ ├── changelog-v2.4.groovy │ │ └── changelog.groovy │ ├── routes │ │ ├── DispatchRoute.groovy │ │ ├── EmailTranslationRoute.groovy │ │ ├── IncomingMissedCallRoute.groovy │ │ ├── IncomingTextMessageRoute.groovy │ │ └── SmslibTranslationRoute.groovy │ ├── services │ │ └── frontlinesms2 │ │ │ ├── AnnouncementService.groovy │ │ │ ├── ApiService.groovy │ │ │ ├── AppInfoService.groovy │ │ │ ├── AppSettingsService.groovy │ │ │ ├── AutoforwardService.groovy │ │ │ ├── AutoreplyService.groovy │ │ │ ├── ContactImportService.groovy │ │ │ ├── ContactSearchService.groovy │ │ │ ├── CustomActivityService.groovy │ │ │ ├── DataUploadService.groovy │ │ │ ├── DeviceDetectionService.groovy │ │ │ ├── DeviceDetectorListenerService.groovy │ │ │ ├── DispatchRouterService.groovy │ │ │ ├── EmailTranslationService.groovy │ │ │ ├── ExpressionProcessorService.groovy │ │ │ ├── FailPendingMessagesService.groovy │ │ │ ├── FconnectionService.groovy │ │ │ ├── FrontlinesyncService.groovy │ │ │ ├── GroupService.groovy │ │ │ ├── I18nUtilService.groovy │ │ │ ├── IncomingMessageRouterService.groovy │ │ │ ├── IntelliSmsTranslationService.groovy │ │ │ ├── KeywordProcessorService.groovy │ │ │ ├── LogService.groovy │ │ │ ├── MessageSendService.groovy │ │ │ ├── MessageStorageService.groovy │ │ │ ├── MobileNumberUtilService.groovy │ │ │ ├── NexmoService.groovy │ │ │ ├── PollService.groovy │ │ │ ├── RecipientLookupService.groovy │ │ │ ├── SmppTranslationService.groovy │ │ │ ├── SmslibTranslationService.groovy │ │ │ ├── SmssyncService.groovy │ │ │ ├── StatusIndicatorService.groovy │ │ │ ├── SubscriptionService.groovy │ │ │ ├── SystemNotificationService.groovy │ │ │ ├── TextMessageInfoService.groovy │ │ │ ├── TextMessageService.groovy │ │ │ ├── TrashService.groovy │ │ │ ├── UrlHelperService.groovy │ │ │ └── WebconnectionService.groovy │ ├── taglib │ │ └── frontlinesms2 │ │ │ └── FsmsTagLib.groovy │ ├── utils │ │ └── .gitkeep │ └── views │ │ ├── _flash.gsp │ │ ├── _head.gsp │ │ ├── _i18n.gsp │ │ ├── _includes.gsp │ │ ├── _system.gsp │ │ ├── _system_menu.gsp │ │ ├── _system_notifications.gsp │ │ ├── _version_number.gsp │ │ ├── activity │ │ ├── announcement │ │ │ ├── _list_head.gsp │ │ │ ├── _message_actions.gsp │ │ │ └── show.gsp │ │ ├── autoforward │ │ │ ├── _list_head.gsp │ │ │ ├── _message_actions.gsp │ │ │ └── show.gsp │ │ ├── autoreply │ │ │ ├── _list_head.gsp │ │ │ ├── _message_actions.gsp │ │ │ └── show.gsp │ │ ├── confirmDelete.gsp │ │ ├── create_new_activity.gsp │ │ ├── customactivity │ │ │ ├── _list_head.gsp │ │ │ ├── _message_actions.gsp │ │ │ ├── _step_summary.gsp │ │ │ └── show.gsp │ │ ├── folder │ │ │ └── _list_head.gsp │ │ ├── generic │ │ │ ├── _list_head.gsp │ │ │ ├── _show.gsp │ │ │ └── _sorting.gsp │ │ ├── poll │ │ │ ├── _list_head.gsp │ │ │ ├── _message_actions.gsp │ │ │ └── show.gsp │ │ ├── rename.gsp │ │ ├── subscription │ │ │ ├── _list_head.gsp │ │ │ ├── _message_actions.gsp │ │ │ └── show.gsp │ │ └── webconnection │ │ │ ├── _list_head.gsp │ │ │ ├── _message_actions.gsp │ │ │ └── show.gsp │ │ ├── announcement │ │ ├── _confirm.gsp │ │ ├── _save.gsp │ │ ├── _validate.gsp │ │ ├── confirmDelete.gsp │ │ └── create.gsp │ │ ├── archive │ │ ├── _archived_activity_list.gsp │ │ ├── _archived_folder_list.gsp │ │ ├── _header.gsp │ │ ├── _menu.gsp │ │ └── standard.gsp │ │ ├── autoforward │ │ ├── _confirm.gsp │ │ ├── _save.gsp │ │ ├── _validate.gsp │ │ └── create.gsp │ │ ├── autoreply │ │ ├── _confirm.gsp │ │ ├── _save.gsp │ │ ├── _validate.gsp │ │ └── create.gsp │ │ ├── connection │ │ ├── _confirm.gsp │ │ ├── _connection.gsp │ │ ├── _details.gsp │ │ ├── _frontlinesync.gsp │ │ ├── _routing.gsp │ │ ├── _smssync.gsp │ │ ├── _type.gsp │ │ ├── createTest.gsp │ │ ├── list.gsp │ │ └── wizard.gsp │ │ ├── contact │ │ ├── _contact_list.gsp │ │ ├── _custom_field.gsp │ │ ├── _footer.gsp │ │ ├── _group_membership.gsp │ │ ├── _header.gsp │ │ ├── _import_contacts.gsp │ │ ├── _menu.gsp │ │ ├── _multiple_contact.gsp │ │ ├── _search_results.gsp │ │ ├── _single_contact.gsp │ │ ├── confirmDelete.gsp │ │ ├── newCustomField.gsp │ │ └── show.gsp │ │ ├── customactivity │ │ ├── _config.gsp │ │ ├── _confirm.gsp │ │ ├── _save.gsp │ │ ├── _step.gsp │ │ ├── _validate.gsp │ │ ├── create.gsp │ │ └── steps │ │ │ ├── _forward.gsp │ │ │ ├── _join.gsp │ │ │ ├── _leave.gsp │ │ │ ├── _reply.gsp │ │ │ ├── _webconnectionStep.gsp │ │ │ └── _webconnectionStepParameter.gsp │ │ ├── error.gsp │ │ ├── export │ │ ├── contactWizard.gsp │ │ └── messageWizard.gsp │ │ ├── fconnection │ │ └── frontlinesync │ │ │ └── _config.gsp │ │ ├── folder │ │ ├── create.gsp │ │ └── rename.gsp │ │ ├── group │ │ ├── confirmDelete.gsp │ │ ├── create.gsp │ │ └── rename.gsp │ │ ├── help │ │ ├── Helpfile Index Markup.txt │ │ ├── _index.gsp │ │ ├── _test.gsp │ │ └── index.gsp │ │ ├── import │ │ └── reviewContacts.gsp │ │ ├── interaction │ │ ├── _activity_buttons.gsp │ │ ├── _footer.gsp │ │ ├── _header.gsp │ │ ├── _interaction_details.gsp │ │ ├── _interaction_list.gsp │ │ ├── _menu.gsp │ │ ├── _message_actions.gsp │ │ ├── _move_message.gsp │ │ ├── _multiple_interaction_details.gsp │ │ ├── _other_actions.gsp │ │ ├── _section_action_buttons.gsp │ │ ├── _single_interaction_details.gsp │ │ └── _trash_list.gsp │ │ ├── layouts │ │ ├── archive.gsp │ │ ├── connection.gsp │ │ ├── contacts.gsp │ │ ├── interactions.gsp │ │ ├── popup.gsp │ │ ├── search.gsp │ │ ├── settings.gsp │ │ └── status_layout.gsp │ │ ├── message │ │ ├── _compose.gsp │ │ ├── _select_recipients.gsp │ │ ├── confirmEmptyTrash.gsp │ │ └── standard.gsp │ │ ├── missedCall │ │ ├── _header.gsp │ │ ├── _interaction_list.gsp │ │ ├── _missedCall_actions.gsp │ │ ├── _multiple_interaction_details.gsp │ │ ├── _single_interaction_details.gsp │ │ └── standard.gsp │ │ ├── poll │ │ ├── _aliases.gsp │ │ ├── _confirm.gsp │ │ ├── _question.gsp │ │ ├── _replies.gsp │ │ ├── _responses.gsp │ │ ├── _save.gsp │ │ ├── _validate.gsp │ │ └── create.gsp │ │ ├── quickMessage │ │ ├── _confirm.gsp │ │ └── create.gsp │ │ ├── search │ │ ├── _basic_filters.gsp │ │ ├── _header.gsp │ │ ├── _menu.gsp │ │ ├── _other_filters.gsp │ │ ├── no_search.gsp │ │ └── result.gsp │ │ ├── settings │ │ ├── _log_buttons.gsp │ │ ├── _menu.gsp │ │ ├── general.gsp │ │ ├── logs.gsp │ │ ├── logsWizard.gsp │ │ ├── porting.gsp │ │ └── sections │ │ │ ├── _basic_auth.gsp │ │ │ ├── _database_backup.gsp │ │ │ └── _language.gsp │ │ ├── smartGroup │ │ ├── _rule.gsp │ │ ├── create.gsp │ │ └── rename.gsp │ │ ├── status │ │ ├── _connection_list.gsp │ │ ├── _device_detection.gsp │ │ ├── _filters.gsp │ │ ├── _traffic.gsp │ │ └── show.gsp │ │ ├── subscription │ │ ├── _autoreplies.gsp │ │ ├── _confirm.gsp │ │ ├── _group.gsp │ │ ├── _save.gsp │ │ ├── _sorting.gsp │ │ ├── _validate.gsp │ │ ├── categoriseSubscription.gsp │ │ └── create.gsp │ │ └── webconnection │ │ ├── _api.gsp │ │ ├── _configure.gsp │ │ ├── _confirm.gsp │ │ ├── _save.gsp │ │ ├── _type.gsp │ │ ├── _validate.gsp │ │ ├── create.gsp │ │ ├── generic │ │ ├── _config.gsp │ │ ├── _confirm.gsp │ │ ├── _parameter.gsp │ │ └── _scripts.gsp │ │ └── ushahidi │ │ ├── _config.gsp │ │ ├── _confirm.gsp │ │ └── _scripts.gsp ├── install │ ├── .gitignore │ ├── README.md │ ├── build.install4j │ ├── do │ │ ├── deploy_app_and_run_launcher │ │ ├── deploy_webapp │ │ └── mvn │ ├── fileset │ │ └── filtered │ │ │ └── launcher.properties │ ├── frontlinesms-core.install.properties │ ├── install4j-custom-classes.pom.xml │ ├── pom.xml │ ├── settings.xml │ └── src │ │ ├── assemble │ │ ├── install4j.xml │ │ └── resources │ │ │ ├── FrontlineSMS.icns │ │ │ ├── FrontlineSMS.ico │ │ │ ├── LICENSE.txt │ │ │ └── splash.png │ │ ├── install │ │ ├── java │ │ │ └── net │ │ │ │ └── frontlinesms │ │ │ │ └── install4j │ │ │ │ └── custom │ │ │ │ ├── CheckRegistration.java │ │ │ │ ├── FrontlineRegistration.java │ │ │ │ ├── Futil.java │ │ │ │ ├── Testsend.java │ │ │ │ └── UserDataBackupAction.java │ │ └── resources │ │ │ ├── installer.icns │ │ │ ├── installer.ico │ │ │ ├── installer_128.png │ │ │ ├── installer_16.png │ │ │ ├── installer_32.png │ │ │ └── installer_64.png │ │ ├── main │ │ ├── java │ │ │ └── net │ │ │ │ └── frontlinesms2 │ │ │ │ └── systraymonitor │ │ │ │ ├── BareBonesBrowserLaunch.java │ │ │ │ ├── CommandlineUtils.java │ │ │ │ ├── DatabaseBackupRestorer.java │ │ │ │ ├── FProperties.java │ │ │ │ ├── Main.java │ │ │ │ ├── Monitor.java │ │ │ │ ├── TrayThingy.java │ │ │ │ ├── Utils.java │ │ │ │ ├── permissions │ │ │ │ ├── PermissionsCheckHandler.java │ │ │ │ ├── PermissionsCheckHandlerFactory.java │ │ │ │ └── UnixPermissionsCheckHandler.java │ │ │ │ └── system │ │ │ │ ├── CommandlineUserInteraction.java │ │ │ │ ├── ProcessExecutor.java │ │ │ │ └── UnixUser.java │ │ └── resources │ │ │ └── tray │ │ │ ├── running.png │ │ │ ├── starting.png │ │ │ ├── stopped.png │ │ │ └── stopping.png │ │ └── test │ │ └── groovy │ │ └── net │ │ └── frontlinesms │ │ └── install4j │ │ └── custom │ │ ├── CheckRegistrationUnitSpec.groovy │ │ ├── FutilIntegrationSpec.groovy │ │ └── FutilUnitSpec.groovy ├── licences.csv ├── scripts │ ├── BuildInstallers.groovy │ ├── I18nReport.groovy │ ├── LicenceReport.groovy │ ├── _Events.groovy │ ├── _Install.groovy │ ├── _Uninstall.groovy │ ├── _Upgrade.groovy │ └── help_links.groovy ├── src │ ├── groovy │ │ └── frontlinesms2 │ │ │ ├── ConnectionStatus.groovy │ │ │ ├── ControllerUtils.groovy │ │ │ ├── CoreAppInfoProviders.groovy │ │ │ ├── CountryCallingCode.groovy │ │ │ ├── DetectedDevice.groovy │ │ │ ├── DetectionStatus.groovy │ │ │ ├── DispatchStatus.groovy │ │ │ ├── EmailReceiveProtocol.groovy │ │ │ ├── FrontlineMultipartResolver.groovy │ │ │ ├── MetaClassModifiers.groovy │ │ │ ├── ResourceUtils.groovy │ │ │ ├── StaticApplicationInstance.groovy │ │ │ ├── TextMessageInfoUtils.groovy │ │ │ ├── api │ │ │ ├── FrontlineApi.groovy │ │ │ ├── FrontlineApiAnnotations.groovy │ │ │ └── FrontlineApiException.groovy │ │ │ ├── camel │ │ │ ├── clickatell │ │ │ │ ├── ClickatellPostProcessor.groovy │ │ │ │ └── ClickatellPreProcessor.groovy │ │ │ ├── exception │ │ │ │ ├── AuthenticationException.groovy │ │ │ │ ├── InsufficientCreditException.groovy │ │ │ │ ├── InvalidApiIdException.groovy │ │ │ │ └── NoRouteAvailableException.groovy │ │ │ ├── intellisms │ │ │ │ ├── IntelliSmsPostProcessor.groovy │ │ │ │ └── IntelliSmsPreProcessor.groovy │ │ │ ├── nexmo │ │ │ │ ├── NexmoPostProcessor.groovy │ │ │ │ └── NexmoPreProcessor.groovy │ │ │ └── smpp │ │ │ │ ├── SmppPostProcessor.groovy │ │ │ │ └── SmppPreProcessor.groovy │ │ │ └── dev │ │ │ ├── GroovyHayesPortHandler.groovy │ │ │ ├── GroovyHayesResponse.groovy │ │ │ ├── GroovyHayesState.groovy │ │ │ └── MockModemUtils.groovy │ ├── images │ │ ├── accordion-expanded.svg │ │ └── accordion-unexpanded.svg │ ├── java │ │ └── .gitkeep │ └── templates │ │ ├── artifacts │ │ ├── Controller.groovy │ │ ├── DomainClass.groovy │ │ ├── Filters.groovy │ │ ├── ScaffoldingController.groovy │ │ ├── Script.groovy │ │ ├── Service.groovy │ │ ├── TagLib.groovy │ │ ├── Tests.groovy │ │ ├── WebTest.groovy │ │ └── hibernate.cfg.xml │ │ ├── scaffolding │ │ ├── Controller.groovy │ │ ├── Test.groovy │ │ ├── _form.gsp │ │ ├── create.gsp │ │ ├── edit.gsp │ │ ├── list.gsp │ │ ├── renderEditor.template │ │ └── show.gsp │ │ ├── testing │ │ ├── Controller.groovy │ │ ├── DomainClass.groovy │ │ ├── Filters.groovy │ │ ├── Generic.groovy │ │ ├── Service.groovy │ │ ├── TagLib.groovy │ │ └── UnitTest.groovy │ │ └── war │ │ └── web.xml ├── style │ ├── css │ │ ├── layout.css │ │ └── reset.css │ ├── deploy_for_ie_testing │ ├── js │ │ ├── jquery-1.7.1.min.js │ │ └── resizer.js │ └── layout │ │ ├── contacts.html │ │ ├── messages1.html │ │ ├── messages2.html │ │ ├── messages3.html │ │ ├── messages4.html │ │ └── settings.html ├── test │ ├── conf │ │ ├── junit-frames.xsl │ │ └── junit-noframes.xsl │ ├── functional │ │ ├── GebConfig.groovy │ │ ├── frontlinesms2 │ │ │ ├── announcement │ │ │ │ ├── AnnouncementBaseSpec.groovy │ │ │ │ ├── AnnouncementCedSpec.groovy │ │ │ │ ├── AnnouncementListSpec.groovy │ │ │ │ └── PageMessageAnnouncement.groovy │ │ │ ├── archive │ │ │ │ ├── ArchiveBaseSpec.groovy │ │ │ │ ├── ArchiveFSpec.groovy │ │ │ │ ├── PageArchive.groovy │ │ │ │ ├── PageArchiveFolder.groovy │ │ │ │ ├── PageArchiveInbox.groovy │ │ │ │ └── PageArchiveSent.groovy │ │ │ ├── autoforward │ │ │ │ ├── AutoforwardBaseSpec.groovy │ │ │ │ ├── AutoforwardCedSpec.groovy │ │ │ │ ├── AutoforwardViewSpec.groovy │ │ │ │ └── PageMessageAutoforward.groovy │ │ │ ├── autoreply │ │ │ │ ├── AutoreplyBaseSpec.groovy │ │ │ │ ├── AutoreplyCedSpec.groovy │ │ │ │ ├── AutoreplyViewSpec.groovy │ │ │ │ └── PageMessageAutoreply.groovy │ │ │ ├── connection │ │ │ │ ├── ConnectionDialog.groovy │ │ │ │ ├── ConnectionFSpec.groovy │ │ │ │ ├── FrontlinesyncFSpec.groovy │ │ │ │ └── PageConnection.groovy │ │ │ ├── contact │ │ │ │ ├── ContactAddGroupSpec.groovy │ │ │ │ ├── ContactBaseSpec.groovy │ │ │ │ ├── ContactCreateSpec.groovy │ │ │ │ ├── ContactDeleteSpec.groovy │ │ │ │ ├── ContactEditSpec.groovy │ │ │ │ ├── ContactListSpec.groovy │ │ │ │ ├── CustomFieldCedSpec.groovy │ │ │ │ ├── CustomFieldViewSpec.groovy │ │ │ │ ├── GroupBaseSpec.groovy │ │ │ │ ├── GroupCedSpec.groovy │ │ │ │ ├── GroupViewSpec.groovy │ │ │ │ └── PageContactShow.groovy │ │ │ ├── customactivity │ │ │ │ ├── CustomActivityBaseSpec.groovy │ │ │ │ ├── CustomActivityCedSpec.groovy │ │ │ │ ├── CustomActivityCreateDialog.groovy │ │ │ │ └── PageMessageCustomActivity.groovy │ │ │ ├── folder │ │ │ │ ├── FolderBaseSpec.groovy │ │ │ │ ├── FolderCedSpec.groovy │ │ │ │ ├── FolderListSpec.groovy │ │ │ │ └── PageMessageFolder.groovy │ │ │ ├── help │ │ │ │ ├── HelpFSpec.groovy │ │ │ │ └── PageHelp.groovy │ │ │ ├── message │ │ │ │ ├── MessageActionSpec.groovy │ │ │ │ ├── MessageAddContactSpec.groovy │ │ │ │ ├── MessageArchiveSpec.groovy │ │ │ │ ├── MessageBaseSpec.groovy │ │ │ │ ├── MessageCheckSpec.groovy │ │ │ │ ├── MessageDeleteSpec.groovy │ │ │ │ ├── MessageGebSpec.groovy │ │ │ │ ├── MessageInboxSpec.groovy │ │ │ │ ├── MessageListSpec.groovy │ │ │ │ ├── MessageNavigationSpec.groovy │ │ │ │ ├── MessagePaginationSpec.groovy │ │ │ │ ├── MessagePendingSpec.groovy │ │ │ │ ├── MessageStarSpec.groovy │ │ │ │ ├── MessageTrashSpec.groovy │ │ │ │ ├── MessageViewSpec.groovy │ │ │ │ ├── MessagesReceivedSpec.groovy │ │ │ │ ├── PageMessage.groovy │ │ │ │ ├── PageMessageInbox.groovy │ │ │ │ ├── PageMessageInboxBob.groovy │ │ │ │ ├── PageMessagePending.groovy │ │ │ │ ├── PageMessageSent.groovy │ │ │ │ ├── PageMessageTrash.groovy │ │ │ │ └── QuickMessageFSpec.groovy │ │ │ ├── missedcall │ │ │ │ ├── MissedCallViewSpec.groovy │ │ │ │ └── PageMissedCall.groovy │ │ │ ├── page │ │ │ │ ├── PageBase.groovy │ │ │ │ ├── PageContact.groovy │ │ │ │ ├── PageGroupShow.groovy │ │ │ │ └── PageMessageActivity.groovy │ │ │ ├── poll │ │ │ │ ├── PageMessagePoll.groovy │ │ │ │ ├── PollBaseSpec.groovy │ │ │ │ ├── PollCedSpec.groovy │ │ │ │ ├── PollListSpec.groovy │ │ │ │ └── PollViewSpec.groovy │ │ │ ├── popup │ │ │ │ ├── PageMediumPopup.groovy │ │ │ │ └── PageSmallPopup.groovy │ │ │ ├── search │ │ │ │ ├── PageNewSearch.groovy │ │ │ │ ├── PageSearch.groovy │ │ │ │ ├── PageSearchResult.groovy │ │ │ │ ├── SearchBaseSpec.groovy │ │ │ │ ├── SearchCheckSpec.groovy │ │ │ │ └── SearchViewSpec.groovy │ │ │ ├── settings │ │ │ │ ├── BasicAuthenticationSpec.groovy │ │ │ │ ├── ChangeLanguageSpec.groovy │ │ │ │ ├── GeneralSettingsSpec.groovy │ │ │ │ ├── ImportExportSettingsSpec.groovy │ │ │ │ ├── PageConnectionSettings.groovy │ │ │ │ ├── PageGeneralSettings.groovy │ │ │ │ ├── PageImportExportSettings.groovy │ │ │ │ ├── PageImportReview.groovy │ │ │ │ ├── PageLogs.groovy │ │ │ │ ├── PageSettings.groovy │ │ │ │ ├── PhonesAndConnectionsFSpec.groovy │ │ │ │ └── SystemLogSpec.groovy │ │ │ ├── smartgroup │ │ │ │ ├── PageSmartGroupShow.groovy │ │ │ │ ├── SmartGroupBaseSpec.groovy │ │ │ │ ├── SmartGroupCreateSpec.groovy │ │ │ │ ├── SmartGroupListSpec.groovy │ │ │ │ └── SmartGroupShowSpec.groovy │ │ │ ├── subscription │ │ │ │ ├── PageMessageSubscription.groovy │ │ │ │ ├── SubscriptionBaseSpec.groovy │ │ │ │ ├── SubscriptionCedSpec.groovy │ │ │ │ └── SubscriptionViewSpec.groovy │ │ │ ├── utils │ │ │ │ └── GebUtil.groovy │ │ │ └── webconnection │ │ │ │ ├── GenericWebconnectionCedSpec.groovy │ │ │ │ ├── PageMessageWebconnection.groovy │ │ │ │ ├── UshahidiWebconnectionCedSpec.groovy │ │ │ │ ├── WebconnectionBaseSpec.groovy │ │ │ │ ├── WebconnectionCedSpec.groovy │ │ │ │ └── WebconnectionViewSpec.groovy │ │ └── grails │ │ │ └── plugin │ │ │ └── geb │ │ │ └── GebSpec.groovy │ ├── integration │ │ ├── frontlinesms2 │ │ │ ├── CoreAppInfoProvidersISpec.groovy │ │ │ ├── EmailRouteSpec.groovy │ │ │ ├── FsmsTagLibSpec.groovy │ │ │ ├── I18nUtilServiceSpec.groovy │ │ │ ├── SimpleRouteISpec.groovy │ │ │ ├── SmartGroupControllerISpec.groovy │ │ │ ├── SmartGroupISpec.groovy │ │ │ ├── TestData.groovy │ │ │ ├── TrashISpec.groovy │ │ │ ├── controller │ │ │ │ ├── AnnouncementControllerISpec.groovy │ │ │ │ ├── AppInfoControllerISpec.groovy │ │ │ │ ├── ArchiveISpec.groovy │ │ │ │ ├── AutoforwardControllerISpec.groovy │ │ │ │ ├── AutoreplyControllerISpec.groovy │ │ │ │ ├── ConnectionControllerISpec.groovy │ │ │ │ ├── ContactControllerISpec.groovy │ │ │ │ ├── CustomactivityControllerISpec.groovy │ │ │ │ ├── DeleteISpec.groovy │ │ │ │ ├── ExportControllerISpec.groovy │ │ │ │ ├── FolderControllerISpec.groovy │ │ │ │ ├── GroupControllerISpec.groovy │ │ │ │ ├── HelpControllerISpec.groovy │ │ │ │ ├── ImportControllerISpec.groovy │ │ │ │ ├── MessageActionISpec.groovy │ │ │ │ ├── MessageControllerISpec.groovy │ │ │ │ ├── PollControllerISpec.groovy │ │ │ │ ├── QuickMessageControllerISpec.groovy │ │ │ │ ├── SearchControllerISpec.groovy │ │ │ │ ├── StatusControllerISpec.groovy │ │ │ │ ├── SubscriptionControllerISpec.groovy │ │ │ │ └── WebconnectionControllerISpec.groovy │ │ │ ├── domain │ │ │ │ ├── ActivityISpec.groovy │ │ │ │ ├── AnnouncementISpec.groovy │ │ │ │ ├── AutoforwardISpec.groovy │ │ │ │ ├── ContactISpec.groovy │ │ │ │ ├── CustomActivityISpec.groovy │ │ │ │ ├── DispatchISpec.groovy │ │ │ │ ├── FconnectionInternalApiSpec.groovy │ │ │ │ ├── FolderISpec.groovy │ │ │ │ ├── ForwardActionStepISpec.groovy │ │ │ │ ├── GroupISpec.groovy │ │ │ │ ├── KeywordISpec.groovy │ │ │ │ ├── LogEntryISpec.groovy │ │ │ │ ├── PollConstructorISpec.groovy │ │ │ │ ├── PollISpec.groovy │ │ │ │ ├── PollResponseISpec.groovy │ │ │ │ ├── ReplyActionStepISpec.groovy │ │ │ │ ├── RequestParameterISpec.groovy │ │ │ │ ├── SmslibFconnectionISpec.groovy │ │ │ │ ├── SubscriptionISpec.groovy │ │ │ │ ├── TextMessageISpec.groovy │ │ │ │ ├── TextMessageLocationISpec.groovy │ │ │ │ ├── UniqueResponsesISpec.groovy │ │ │ │ ├── UshahidiWebconnectionISpec.groovy │ │ │ │ └── WebconnectionISpec.groovy │ │ │ └── service │ │ │ │ ├── AutoforwardServiceISpec.groovy │ │ │ │ ├── CustomActivityServiceISpec.groovy │ │ │ │ ├── DeviceDetectionServiceISpec.groovy │ │ │ │ ├── DispatchRouterServiceISpec.groovy │ │ │ │ ├── ExpressionProcessorServiceISpec.groovy │ │ │ │ ├── FailPendingMessagesServiceISpec.groovy │ │ │ │ ├── FconnectionServiceISpec.groovy │ │ │ │ ├── KeywordProcessorServiceISpec.groovy │ │ │ │ ├── LogServiceISpec.groovy │ │ │ │ ├── MessageSendServiceISpec.groovy │ │ │ │ ├── RecipientLookupServiceISpec.groovy │ │ │ │ ├── TextMessageServiceISpec.groovy │ │ │ │ ├── TrashServiceISpec.groovy │ │ │ │ └── WebconnectionServiceISpec.groovy │ │ ├── help │ │ │ └── testHelp.txt │ │ └── routing │ │ │ ├── CamelIntegrationSpec.groovy │ │ │ ├── IncomingSmslibRouteSpec.groovy │ │ │ ├── OutgoingClickatellRouteSpec.groovy │ │ │ ├── OutgoingEmailRouteSpec.groovy │ │ │ ├── OutgoingSmslibRouteSpec.groovy │ │ │ └── RoutingSpecUtils.groovy │ ├── js │ │ ├── app_info_tests.js │ │ ├── check_list │ │ │ └── standard.html │ │ ├── check_list_tests.js │ │ ├── lib │ │ │ ├── ajax_spy.js │ │ │ ├── dom_trix.js │ │ │ ├── js_test_util.js │ │ │ ├── junitlogger.js │ │ │ └── timer.js │ │ ├── message_composer │ │ │ └── standard.html │ │ ├── message_composer_tests.js │ │ ├── recipient_selecter │ │ │ └── standard.html │ │ └── recipient_selecter_tests.js │ ├── migration │ │ ├── .gitignore │ │ ├── build.gradle │ │ ├── gradle.properties │ │ └── src │ │ │ └── main │ │ │ └── groovy │ │ │ ├── MigrationSpec.groovy │ │ │ └── frontlinesms2 │ │ │ └── ClassDeclarations.groovy │ └── unit │ │ ├── ApiUrlMappingSpec.groovy │ │ ├── GroupsAndContactsUrlMappingSpec.groovy │ │ ├── HelpUrlMappingSpec.groovy │ │ ├── MessageAndActivityUrlMappingSpec.groovy │ │ ├── SearchUrlMappingSpec.groovy │ │ └── frontlinesms2 │ │ ├── AnnouncementSpec.groovy │ │ ├── AutoforwardSpec.groovy │ │ ├── AutoreplySpec.groovy │ │ ├── ContactSpec.groovy │ │ ├── CustomFieldSpec.groovy │ │ ├── DetectedDeviceSpec.groovy │ │ ├── DispatchSpec.groovy │ │ ├── EmailFconnectionSpec.groovy │ │ ├── FolderSpec.groovy │ │ ├── ForwardActionStepSpec.groovy │ │ ├── FsmsTagLibSpec.groovy │ │ ├── GenericWebconnectionSpec.groovy │ │ ├── GroupSpec.groovy │ │ ├── IntelliSmsFconnectionSpec.groovy │ │ ├── JoinActionStepSpec.groovy │ │ ├── KeywordSpec.groovy │ │ ├── LeaveActionStepSpec.groovy │ │ ├── LogEntrySpec.groovy │ │ ├── MissedCallSpec.groovy │ │ ├── PollResponseSpec.groovy │ │ ├── PollSpec.groovy │ │ ├── QueuedDispatchSpec.groovy │ │ ├── SearchSpec.groovy │ │ ├── SecurityFiltersSpec.groovy │ │ ├── SmartGroupSpec.groovy │ │ ├── SmslibFconnectionSpec.groovy │ │ ├── StatusIndicatorServiceSpec.groovy │ │ ├── SubscriptionSpec.groovy │ │ ├── SystemNotificationSpec.groovy │ │ ├── TextMessageSpec.groovy │ │ ├── TrashSpec.groovy │ │ ├── UshahidiWebconnectionSpec.groovy │ │ ├── WebconnectionActionStepSpec.groovy │ │ ├── camel │ │ ├── CamelUnitSpecification.groovy │ │ ├── clickatell │ │ │ ├── ClickatellPostProcessorSpec.groovy │ │ │ └── ClickatellPreProcessorSpec.groovy │ │ ├── intellisms │ │ │ ├── IntelliSmsPostProcessorSpec.groovy │ │ │ └── IntelliSmsPreProcessorSpec.groovy │ │ └── smpp │ │ │ ├── SmppPostProcessorSpec.groovy │ │ │ └── SmppPreProcessorSpec.groovy │ │ ├── controllers │ │ ├── ApiControllerSpec.groovy │ │ ├── ArchiveControllerSpec.groovy │ │ ├── ConnectionControllerSpec.groovy │ │ ├── ContactControllerSpec.groovy │ │ ├── ErrorControllerSpec.groovy │ │ ├── FolderControllerSpec.groovy │ │ ├── GroupControllerSpec.groovy │ │ ├── ImportControllerSpec.groovy │ │ ├── MessageControllerSpec.groovy │ │ ├── PollControllerSpec.groovy │ │ ├── QuickMessageControllerSpec.groovy │ │ └── SettingsControllerSpec.groovy │ │ ├── jobs │ │ └── UploadRegistrationDataSpec.groovy │ │ └── services │ │ ├── AnnouncementServiceSpec.groovy │ │ ├── AppInfoServiceSpec.groovy │ │ ├── AutoforwardServiceSpec.groovy │ │ ├── AutoreplyServiceSpec.groovy │ │ ├── ContactImportServiceSpec.groovy │ │ ├── CustomActivityServiceSpec.groovy │ │ ├── DeviceDetectionServiceSpec.groovy │ │ ├── DeviceDetectorListenerServiceSpec.groovy │ │ ├── DispatchRouterServiceSpec.groovy │ │ ├── EmailTranslationServiceSpec.groovy │ │ ├── ExpressionProcessorServiceSpec.groovy │ │ ├── FconnectionServiceSpec.groovy │ │ ├── FrontlinesyncServiceSpec.groovy │ │ ├── IncomingMessageRouterServiceSpec.groovy │ │ ├── IntelliSmsTranslationServiceSpec.groovy │ │ ├── MessageSendServiceSpec.groovy │ │ ├── MessageStorageServiceSpec.groovy │ │ ├── RecipientLookupServiceSpec.groovy │ │ ├── SmppTranslationServiceSpec.groovy │ │ ├── SmslibTranslationServiceSpec.groovy │ │ ├── SmssyncServiceSpec.groovy │ │ ├── SubscriptionServiceSpec.groovy │ │ ├── SystemNotificationServiceSpec.groovy │ │ ├── TextMessageInfoServiceSpec.groovy │ │ ├── UrlHelperServiceSpec.groovy │ │ └── WebconnectionServiceSpec.groovy └── web-app │ ├── META-INF │ └── context.xml │ ├── WEB-INF │ ├── applicationContext.xml │ ├── context.xml │ ├── sitemesh.xml │ └── tld │ │ ├── c.tld │ │ ├── fmt.tld │ │ ├── grails.tld │ │ └── spring.tld │ ├── css │ ├── activity.css │ ├── activity │ │ ├── customactivity.css │ │ ├── poll.css │ │ └── webconnection.css │ ├── archive.css │ ├── chosen.css │ ├── color.css │ ├── contact.css │ ├── controls.css │ ├── flags.css │ ├── head.css │ ├── help.css │ ├── ie7.css │ ├── ie8.css │ ├── jquery.jqplot.css │ ├── layout.css │ ├── message.css │ ├── reset.css │ ├── search.css │ ├── settings.css │ ├── simple-slider.css │ ├── status.css │ ├── unreviewed-core.css │ └── wizard.css │ ├── images │ ├── archive │ │ ├── activity.png │ │ ├── folder.png │ │ ├── inbox.png │ │ └── sent.png │ ├── button │ │ ├── active.png │ │ ├── disabled.png │ │ ├── hover.png │ │ └── standard.png │ ├── chosen-sprite.png │ ├── chosen-sprite@2x.png │ ├── favicon.ico │ ├── flags.png │ ├── frontline-flag.png │ ├── frontlinesync_play_badge.png │ ├── head_background.png │ ├── help │ │ ├── ConnectionsRoutingRules.png │ │ ├── ConnectionsRoutingRules2.png │ │ ├── ContactEdits.png │ │ ├── ContactImport.png │ │ ├── ContactMultipleDelete.png │ │ ├── ContactNew.png │ │ ├── CustomActivityBuilder │ │ │ ├── CABAddStep.png │ │ │ ├── CABKeyword.png │ │ │ ├── CABRemoveFromGroup.png │ │ │ ├── CABSave.png │ │ │ ├── CABSelectGroup.png │ │ │ ├── CreateCustomActivity.png │ │ │ └── EditingCAB.png │ │ ├── activity_archive.png │ │ ├── activity_archive_detail.png │ │ ├── activity_delete.png │ │ ├── activity_overview.png │ │ ├── activityunarchive.png │ │ ├── add_contact.png │ │ ├── add_more_info.png │ │ ├── add_new_connection.png │ │ ├── add_to_group.png │ │ ├── advanced_search.png │ │ ├── aliases.png │ │ ├── announcement1.png │ │ ├── announcement2.png │ │ ├── announcement3.png │ │ ├── announcement4.png │ │ ├── archive_activity.png │ │ ├── archive_overview.png │ │ ├── autoforward1.png │ │ ├── autoforward2.png │ │ ├── autoforward3.png │ │ ├── autoforward4.png │ │ ├── autoforward5.png │ │ ├── autoforward6.png │ │ ├── autoreply1.png │ │ ├── autoreply2.png │ │ ├── autoreply3.png │ │ ├── autoreply4.png │ │ ├── basic_search.png │ │ ├── clickatell.png │ │ ├── clickatell_confirm.png │ │ ├── connecting.png │ │ ├── contact_import │ │ │ ├── ImportFailNotice.png │ │ │ ├── ReviewContactImport.png │ │ │ ├── Screenshot_5_20_13_4_24_PM.jpg │ │ │ └── Settings___Import___Export-2.jpg │ │ ├── contact_search.png │ │ ├── contact_select.png │ │ ├── contacts_overview.png │ │ ├── create_group.png │ │ ├── create_group_dialog.png │ │ ├── create_smartgroup.png │ │ ├── creating_activity.png │ │ ├── creating_folder.png │ │ ├── delete_connection.png │ │ ├── delete_contact.png │ │ ├── delete_multiple_contact.png │ │ ├── destroy_route.png │ │ ├── detect_activity.png │ │ ├── edit_connection.png │ │ ├── export_activity.png │ │ ├── export_contact.png │ │ ├── export_dialog.png │ │ ├── export_message_tab.png │ │ ├── export_search_tab.png │ │ ├── filtering2.png │ │ ├── filtering_messages.png │ │ ├── folder_archive.png │ │ ├── folder_archive_detail.png │ │ ├── folder_dialog.png │ │ ├── folder_overview.png │ │ ├── forward.png │ │ ├── frontlinesync │ │ │ ├── 1.1.Add-New-Connection.jpg │ │ │ ├── 1.2.Select-Modem-Type.jpg │ │ │ ├── 1.3.Connection-Name.jpg │ │ │ ├── 1.4.orange_connection.jpg │ │ │ ├── 2.1.config.jpg │ │ │ ├── 2.2.passcode_and_ip.jpg │ │ │ ├── 2.3.options.jpg │ │ │ ├── 3.1.green_connection.jpg │ │ │ └── 3.2.too_many_sms.jpg │ │ ├── group_dropdown.png │ │ ├── groupexport.png │ │ ├── inbox_archive.png │ │ ├── intellisms.png │ │ ├── intellisms_confirm.png │ │ ├── manual_response.png │ │ ├── message_tab_overview.png │ │ ├── messageforward.png │ │ ├── mrfd_multiple.png │ │ ├── mrfd_reply.png │ │ ├── multiple_add_to_group.png │ │ ├── namecustomfield.png │ │ ├── pending.png │ │ ├── phone_modem.png │ │ ├── phone_modem_confirm.png │ │ ├── poll1.png │ │ ├── poll2.png │ │ ├── poll3.png │ │ ├── poll4.png │ │ ├── poll5.png │ │ ├── poll6.png │ │ ├── poll7.png │ │ ├── poll8.png │ │ ├── poll9.png │ │ ├── poll_chart.png │ │ ├── pollkeywords.png │ │ ├── quick_message1.png │ │ ├── quickmessage2.png │ │ ├── quickmessage3.png │ │ ├── quickmessagecontact.png │ │ ├── remove_single_contact.png │ │ ├── removesinglecontact.png │ │ ├── rename_poll.png │ │ ├── rename_poll_dialog.png │ │ ├── search_overview.png │ │ ├── sent.png │ │ ├── sent_archive.png │ │ ├── settings_basicauth.png │ │ ├── settings_connections.png │ │ ├── settings_import.png │ │ ├── settings_language.png │ │ ├── settings_menu.png │ │ ├── smartgroup_dialog.png │ │ ├── smssync │ │ │ ├── Configure_your_Connections-2.jpg │ │ │ ├── Configure_your_Connections-5.jpg │ │ │ ├── Configure_your_Connections.jpg │ │ │ ├── SMSSync_Configure_your_Connections.jpg │ │ │ ├── Screenshot_6_7_13_2_35_PM.jpg │ │ │ ├── Screenshot_6_7_13_3_03_PM-2.jpg │ │ │ ├── Screenshot_6_7_13_3_11_PM-2.jpg │ │ │ ├── account_selected.png │ │ │ ├── add_sync_url.png │ │ │ ├── add_sync_url_filled.png │ │ │ ├── enable_sync_and_tasks.png │ │ │ ├── initial.png │ │ │ ├── no_activity.png │ │ │ ├── photo_1-3.jpg │ │ │ └── sync_frequency.png │ │ ├── sss.png │ │ ├── status_overview.png │ │ ├── subscription1.png │ │ ├── subscription2.png │ │ ├── subscription3.png │ │ ├── subscription4.png │ │ ├── subscription5.png │ │ ├── successfully_connected.png │ │ ├── test_image.png │ │ ├── trash.png │ │ ├── unarchive_message.png │ │ ├── using_traffic_graph.png │ │ ├── view_sent_received_messages.png │ │ ├── webconnection1.png │ │ ├── webconnection2.png │ │ ├── webconnection3.png │ │ ├── webconnection4.png │ │ ├── webconnection5.png │ │ ├── webconnection6.png │ │ └── webconnection7.png │ ├── icons │ │ ├── accordion-expanded.png │ │ ├── accordion-unexpanded.png │ │ ├── activity.png │ │ ├── add.png │ │ ├── calendar.png │ │ ├── contacts.png │ │ ├── createnew.png │ │ ├── down_arrow.png │ │ ├── draggable.png │ │ ├── error.png │ │ ├── error_on.png │ │ ├── folder.png │ │ ├── grabber.png │ │ ├── groups.png │ │ ├── help.png │ │ ├── inbox.png │ │ ├── magic_wand.png │ │ ├── message.png │ │ ├── messagehistory.png │ │ ├── quickmessage.png │ │ ├── remove.png │ │ ├── remove_hover.png │ │ ├── save.png │ │ ├── search.png │ │ ├── send.png │ │ ├── smartgroups.png │ │ ├── star.png │ │ ├── star_outline.png │ │ ├── toggle_minus.png │ │ ├── toggle_plus.png │ │ ├── trash.png │ │ ├── up_arrow.png │ │ └── ushahidi.png │ ├── logo.png │ ├── menubar.png │ ├── menubar_2.png │ ├── message │ │ ├── failed.png │ │ ├── gray-ajax-spinner.gif │ │ ├── ownerdetail-completed.png │ │ ├── ownerdetail-failed.png │ │ ├── ownerdetail-pending.png │ │ ├── pending-failed.png │ │ ├── pending.png │ │ ├── received.png │ │ ├── sent-failed.png │ │ ├── sent-pending-failed.png │ │ ├── sent-pending.png │ │ └── sent.png │ ├── pagination │ │ ├── left.png │ │ ├── left_active.png │ │ ├── left_disabled.png │ │ ├── left_hover.png │ │ ├── right.png │ │ ├── right_active.png │ │ ├── right_disabled.png │ │ └── right_hover.png │ ├── skin │ │ ├── database_add.png │ │ ├── database_delete.png │ │ ├── database_edit.png │ │ ├── database_save.png │ │ ├── database_table.png │ │ ├── exclamation.png │ │ ├── house.png │ │ ├── information.png │ │ ├── shadow.jpg │ │ ├── sorted_asc.gif │ │ └── sorted_desc.gif │ ├── status │ │ ├── green.png │ │ ├── grey.png │ │ ├── orange.png │ │ └── red.png │ ├── tab │ │ ├── connection.png │ │ ├── connection_current.png │ │ ├── connection_hover.png │ │ ├── connection_pressed.png │ │ ├── message.png │ │ ├── message_current.png │ │ ├── message_hover.png │ │ ├── message_pressed.png │ │ ├── standard.png │ │ ├── standard_current.png │ │ ├── standard_hover.png │ │ ├── standard_pressed.png │ │ ├── status.png │ │ ├── status_current.png │ │ ├── status_hover.png │ │ └── status_pressed.png │ ├── tabbar.png │ ├── tabbar_2.png │ └── thinking.gif │ ├── jni │ ├── linux │ │ ├── amd64 │ │ │ └── librxtxSerial.so │ │ ├── i686 │ │ │ └── librxtxSerial.so │ │ └── x86_64 │ │ │ └── librxtxSerial.so │ ├── mac │ │ ├── i686 │ │ │ └── librxtxSerial.jnilib │ │ └── x86_64 │ │ │ └── librxtxSerial.jnilib │ └── windows │ │ ├── i686 │ │ └── win32com.dll │ │ └── javax.comm.properties │ ├── jquery-ui │ └── themes │ │ └── medium │ │ ├── jquery-ui.custom.css │ │ ├── jquery.ui.autocomplete.css │ │ ├── jquery.ui.core.css │ │ ├── jquery.ui.datepicker.css │ │ ├── jquery.ui.dialog.css │ │ ├── jquery.ui.progressbar.css │ │ ├── jquery.ui.resizable.css │ │ ├── jquery.ui.selectable.css │ │ ├── jquery.ui.selectmenu.css │ │ ├── jquery.ui.slider.css │ │ ├── jquery.ui.tabs.css │ │ └── jquery.ui.theme.css │ └── js │ ├── activity │ ├── custom_activity.js │ ├── poll │ │ ├── poll.js │ │ └── poll_graph.js │ ├── popupCustomValidation.js │ ├── popups.js │ ├── subscription.js │ └── webconnection.js │ ├── ajax-chosen.js │ ├── app_info.js │ ├── button.js │ ├── characterSMS-count.js │ ├── check_list.js │ ├── chosen.jquery.js │ ├── contact │ ├── editor.js │ ├── groups-editor.js │ ├── import_review.js │ ├── moreGroupActions.js │ ├── search_within_list.js │ └── validateContact.js │ ├── contactsearch.js │ ├── datepicker.js │ ├── fconnection.js │ ├── frontlinesms_core.js │ ├── frontlinesync.js │ ├── graph │ ├── graph-utils.js │ ├── jqplot.barRenderer.min.js │ ├── jqplot.categoryAxisRenderer.min.js │ ├── jqplot.enhancedLegendRenderer.min.js │ ├── jqplot.highlighter.min.js │ ├── jqplot.pointLabels.min.js │ └── jquery.jqplot.min.js │ ├── group │ └── generate-message.js │ ├── inline_editable.js │ ├── jquery.autosize-min.js │ ├── jquery.pulse.js │ ├── jquery.ui.selectmenu.js │ ├── jquery.validate.min.js │ ├── layout │ └── resizer.js │ ├── magicwand.js │ ├── mediumPopup.js │ ├── message │ ├── arrow_navigation.js │ ├── categorize_dropdown.js │ ├── check_for_new_messages.js │ ├── moreActions.js │ ├── move_dropdown.js │ ├── new_message_summary.js │ └── star_message.js │ ├── message_composer.js │ ├── new_features.js │ ├── pagination.js │ ├── recipient_selecter.js │ ├── routing.js │ ├── sanchez.min.js │ ├── search │ ├── basicFilters.js │ └── moreOptions.js │ ├── selectmenuTools.js │ ├── settings │ ├── connectionTooltips.js │ └── general_settings.js │ ├── simple-slider.js │ ├── smallPopup.js │ ├── status_indicator.js │ └── system_notification.js └── radio ├── .gitignore ├── RadioGrailsPlugin.groovy ├── application.properties ├── do └── rebuild_with_clean ├── grails-app ├── conf │ ├── BuildConfig.groovy │ ├── Config.groovy │ ├── DataSource.groovy │ ├── RadioBootStrap.groovy │ ├── RadioFilters.groovy │ ├── RadioResources.groovy │ └── RadioUrlMappings.groovy ├── controllers │ └── frontlinesms2 │ │ └── radio │ │ └── RadioShowController.groovy ├── domain │ └── frontlinesms2 │ │ └── radio │ │ └── RadioShow.groovy ├── i18n │ ├── messages.properties │ └── messages_sw.properties ├── migrations │ ├── changelog-1.0.1.groovy │ ├── changelog-1.0.2.groovy │ ├── changelog-1.0.groovy │ └── changelog.groovy ├── routes │ └── RadioShowIncomingFmessageRoute.groovy ├── services │ └── frontlinesms2 │ │ └── radio │ │ └── RadioShowService.groovy ├── taglib │ └── frontlinesms2 │ │ └── radio │ │ └── RadioTagLib.groovy └── views │ ├── activity │ ├── generic │ │ └── _show.gsp │ ├── poll │ │ └── show.gsp │ └── radioShow │ │ └── _list_head.gsp │ ├── announcement │ ├── _confirm.gsp │ └── create.gsp │ ├── archive │ ├── _menu.gsp │ └── showArchive.gsp │ ├── autoforward │ ├── _confirm.gsp │ └── create.gsp │ ├── autoreply │ ├── _confirm.gsp │ └── create.gsp │ ├── help │ └── _index.gsp │ ├── message │ ├── _activity_buttons.gsp │ ├── _menu.gsp │ ├── _message_actions.gsp │ ├── _message_list.gsp │ ├── _move_message.gsp │ ├── _section_action_buttons.gsp │ ├── _single_message_details.gsp │ ├── _trash_list.gsp │ └── standard.gsp │ ├── poll │ ├── _confirm.gsp │ └── create.gsp │ ├── radioShow │ ├── _archived_radioShow_list.gsp │ ├── _selectShow.gsp │ ├── confirmDelete.gsp │ ├── create.gsp │ ├── rename.gsp │ └── standard.gsp │ ├── search │ └── _basic_filters.gsp │ ├── status │ └── _filters.gsp │ ├── subscription │ ├── _confirm.gsp │ └── create.gsp │ ├── webconnection │ ├── _confirm.gsp │ ├── create.gsp │ ├── generic │ │ └── _confirm.gsp │ └── ushahidi │ │ └── _confirm.gsp │ └── wordcloud │ ├── _wordcloud.gsp │ └── _wordcloud_actions.gsp ├── install ├── fileset │ └── filtered │ │ └── launcher.properties ├── radio.install.properties └── src │ ├── assemble │ └── resources │ │ ├── radio.icns │ │ ├── radio.ico │ │ └── splash.png │ ├── install │ └── resources │ │ ├── installer_128.png │ │ ├── installer_16.png │ │ ├── installer_32.png │ │ ├── installer_64.png │ │ ├── radio-installer.icns │ │ └── radio-installer.ico │ └── main │ └── resources │ └── tray │ ├── running.png │ ├── starting.png │ ├── stopped.png │ └── stopping.png ├── scripts ├── _Events.groovy ├── _Install.groovy ├── _Uninstall.groovy └── _Upgrade.groovy ├── test ├── conf │ ├── junit-frames.xsl │ └── junit-noframes.xsl ├── functional │ └── frontlinesms2 │ │ ├── poll │ │ ├── PagePollCreate.groovy │ │ └── RadioShowPollSpec.groovy │ │ ├── radio │ │ ├── PageMorningShow.groovy │ │ ├── RadioBaseSpec.groovy │ │ ├── RadioShowCedSpec.groovy │ │ └── RadioShowListSpec.groovy │ │ └── utils │ │ └── GebUtil.groovy ├── integration │ └── frontlinesms2 │ │ ├── radio │ │ ├── IncomingSmslibRouteSpec.groovy │ │ ├── RadioShowControllerISpec.groovy │ │ ├── RadioShowISpec.groovy │ │ ├── RadioShowServiceISpec.groovy │ │ └── RadioUrlMappingITests.groovy │ │ └── routing │ │ └── CamelIntegrationSpec.groovy └── unit │ └── frontlinesms2 │ └── radio │ ├── RadioShowControllerSpec.groovy │ └── RadioShowSpec.groovy └── web-app ├── WEB-INF ├── applicationContext.xml ├── sitemesh.xml └── tld │ ├── c.tld │ ├── fmt.tld │ ├── grails.tld │ └── spring.tld ├── css ├── colors.css ├── jqcloud.css └── radio.css ├── help ├── .gitignore └── radio │ └── shows │ ├── 1.getting_around_shows.txt │ ├── 1.getting_around_the_archive_tab.txt │ ├── 1.getting_around_the_messages_tab.txt │ ├── 1e.show_archive.txt │ ├── 2.creating_a_show.txt │ ├── 3.adding_activities_to_shows.txt │ ├── 4.rename_show.txt │ ├── 5.delete_show.txt │ ├── 6.export_show.txt │ ├── 7.archive_show.txt │ ├── 8.unarchive_show.txt │ ├── 9.exporting.txt │ └── 9.wordclouds.txt ├── images ├── favicon.ico ├── help │ ├── add_to_show.png │ ├── assign_to_show_activity_dialog.png │ ├── assign_to_show_dialog.png │ ├── creating_show.png │ ├── creating_show_dialog.png │ ├── deleting_shows.png │ ├── export_show.png │ ├── export_show_dialog.png │ ├── ignore_word.png │ ├── rename_show.png │ ├── rename_show_dialog.png │ ├── show_archive.png │ ├── show_overview.png │ ├── unarchive_show.png │ └── wordcloud.png ├── logo.png └── shows.png ├── jni ├── linux │ ├── amd64 │ │ └── librxtxSerial.so │ ├── i686 │ │ └── librxtxSerial.so │ └── x86_64 │ │ └── librxtxSerial.so ├── mac │ ├── i686 │ │ └── librxtxSerial.jnilib │ └── x86_64 │ │ └── librxtxSerial.jnilib └── windows │ ├── i686 │ └── win32com.dll │ └── javax.comm.properties └── js ├── jqcloud-1.0.0.js ├── on_air.js └── word_cloud.js /plugins/frontlinesms-core/.gitignore: -------------------------------------------------------------------------------- 1 | tmp 2 | web-app/WEB-INF/grails-app/ 3 | 4 | # Auto-generated JS i18n bundles. 5 | web-app/i18n/ 6 | 7 | # NodeJS local modules 8 | node_modules/ 9 | 10 | # temp files when built as a plugin 11 | web-app/css/frontlinesms-core 12 | *.pom 13 | 14 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/application.properties: -------------------------------------------------------------------------------- 1 | #Grails Metadata file 2 | #Wed May 21 09:55:52 EAT 2014 3 | app.grails.version=2.0.3 4 | app.name=frontlinesms-core 5 | app.servlet.version=2.5 6 | app.version=5.0-SNAPSHOT 7 | plugins.rest-client-builder=1.0.2 8 | plugins.spock=0.6 9 | sprint.number=78 10 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/bails: -------------------------------------------------------------------------------- 1 | target/plugins/bails-0.6/scripts -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/README: -------------------------------------------------------------------------------- 1 | This directory contains bask scripts to do various annoying tasks at dev time. 2 | 3 | The working directory is assumed to be the project root (i.e. ../ from do/). 4 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/add_current_user_to_dialout_group: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | U=`id -nu` 4 | G=dialout 5 | echo "# Adding user '$U' to group '$G'..." 6 | sudo usermod -a -G $G $U 7 | echo "# Added." 8 | 9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/add_snapshot_to_install_resource_directories: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | echo "# Adding -SNAPSHOT to resource.path values for installer..." 4 | sed -i "s:\(-Dfrontlinesms\.resource\.path=~/.*\):\1-SNAPSHOT:" ../frontlinesms-core/install/build.install4j 5 | sed -i "s:\(resource\.path=.*\):\1-SNAPSHOT:" ../frontlinesms-core/install/fileset/filtered/launcher.properties 6 | 7 | echo "# TODO update this to support other flavours than core" 8 | do/install_property_to_snapshot install4j.applicationId 9 | 10 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/build_deploy: -------------------------------------------------------------------------------- 1 | rm -rf target && rm -rf install/target && rm -rf install/web-app && grails clean && grails prod build-installers | tee build-installers.log && do/dropbox_deploy 2 | 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/build_installers_with_migrations_disabled: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | if [ -z $1 ]; then 4 | GRAILS_ENV=prod 5 | else 6 | GRAILS_ENV=$1 7 | fi 8 | echo "# running grails clean..." 9 | grails clean 10 | echo "# build installers with migrations disabled for grails env $GRAILS_ENV..." 11 | grails -Dfrontlinesms2.build.db.migrations=false $GRAILS_ENV build-installers && echo "# installers built. Have a nice day." 12 | 13 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/check_for_bad_resource_tags: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "# Checking for calls to g.resource instead of r.resource..." 3 | if grep -Er '(g:|g\.|\{|<)resource' grails-app/views/; then 4 | echo "# Bad calls to g.resource found. Please change these to use r.resource." 5 | exit 1 6 | else 7 | echo "# No bad calls to g.resource found." 8 | exit 0 9 | fi 10 | 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/check_for_bad_template_renders: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "# Checking for bad calls to template renderer..." 3 | echo "# Checking views..." 4 | grep -rn "render.*template" grails-app/views/ | grep -v "fsms:render" 5 | VIEW_OUTPUT=$? 6 | 7 | if [ "$VIEW_OUTPUT" -eq 1 ]; then 8 | echo "# No bad template renders detected" 9 | exit 0 10 | else 11 | echo "# Bad template renders detected" 12 | exit 1 13 | fi 14 | 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/check_for_ignored_tests: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "# Searching for ignored tests..." 3 | grep -Er '@(spock\.lang\.)?Ignore' test/ 4 | FOUND_STATUS=$? 5 | 6 | if [ 1 -eq $FOUND_STATUS ]; then 7 | echo "# No ignored tests were found." 8 | RETURN_STATUS=0 9 | else 10 | echo "# Ignored tests were found, or there was a problem with the search." 11 | RETURN_STATUS=1 12 | fi 13 | 14 | exit $RETURN_STATUS 15 | 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/check_for_metaclass_in_non-unit_tests: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "# Checking for calls to metaclass on non-instance variables..." 3 | grep -r '\s[A-Z]([a-zA-Z]*)\.metaClass' test/integration/ test/functional/ 4 | if [ $? -eq 1 ]; then 5 | echo "# No bad metaclass calls found." 6 | exit 0 7 | fi 8 | echo "# Bad Class.metaClass calls detected." 9 | exit 1 10 | 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/check_for_popups_without_loading_image: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "# Checking for popups that dont have loading image..." 4 | grep -Er 'launch.*Popup|launch.*Wizard' grails-app/views/ | grep onSuccess 5 | if [[ "$?" == "1" ]]; then 6 | echo "# No popups without loading image detected." 7 | exit 0 8 | else 9 | echo "# VIOLATION: Popups without loading image detected, or there was a problem with the search." 10 | exit 1 11 | fi 12 | 13 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/check_for_setInterval_calls: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | echo "# Checking for bad calls to setInterval..." 5 | VIOLATIONS=`grep -lr setInterval grails-app/views/ web-app/js/ | grep -v app_info | grep -v timer | wc -l | tr -d ' '` 6 | 7 | if [[ "$VIOLATIONS" != "0" ]]; then 8 | echo "# Violations found:" 9 | grep -lr setInterval grails-app/views/ web-app/js/ | grep -v app_info | grep -v timer 10 | exit 1 11 | fi 12 | 13 | echo "# No bad calls to setInterval found." 14 | 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/check_for_snapshot_dependencies: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Counting..." 3 | count=`grep -c SNAPSHOT grails-app/conf/BuildConfig.groovy` 4 | echo "counted: $count" 5 | if [ $count -eq 0 ]; then 6 | echo "No snapshots found." 7 | else 8 | echo "##################################" 9 | echo "# YOU HAVE SNAPSHOT DEPENDENCIES #" 10 | echo "##################################" 11 | echo "Press ENTER to continue..." 12 | read whatever 13 | fi 14 | 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/check_for_static_simple_date_format: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "# Checking for non-thread-safe use of SimpleDateFormat..." 3 | grep -r 'static.*SimpleDateFormat' grails-app/ src/ 4 | if [[ "$?" != "1" ]]; then 5 | echo "# Static instances of SimpleDateFormat found. This class is not thread-safe." 6 | echo "# Either make the instances ThreadLocal or per-instance." 7 | exit 1 8 | fi 9 | echo "# No bad SimpleDateFormat use found." 10 | 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/clear_serial_locks: -------------------------------------------------------------------------------- 1 | echo "Clearing serial lock files..." 2 | locks=`ls /var/lock/LCK..ttyUSB*` 3 | echo "Current locks: $locks" 4 | sudo rm /var/lock/LCK..ttyUSB* 5 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/codenarc_report_postprocess: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | REPORT_FILE=target/analysis-reports/codenarc.xml 4 | echo "# Processing CodeNarc report to correct source locations for jenkins..." 5 | sed -i -e "s:path=':path='plugins/frontlinesms-core/:g" $REPORT_FILE 6 | echo "# CoreNarc report postprocess complete." 7 | 8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/db_dev: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Starting grails in database development mode..." 4 | echo "Calling 'grails -Dgrails.env=dbDev -Ddisable.auto.recompile=false -Dfrontlinesms2.bootstrap.data=true $@'" 5 | grails -Dgrails.env=dbDev -Ddisable.auto.recompile=false -Dfrontlinesms2.bootstrap.data=true $@ 6 | 7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/diff_and_open: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | $EDITOR `git diff --name-only --relative | uniq` 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/disable_installer_compression: -------------------------------------------------------------------------------- 1 | sed -i s/pack200Compression=\"true\"/pack200Compression=\"false\"/g ../frontlinesms-core/install/build.install4j 2 | sed -i s/lzmaCompression=\"true\"/lzmaCompression=\"false\"/g ../frontlinesms-core/install/build.install4j 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/dropbox_deploy: -------------------------------------------------------------------------------- 1 | cp install/target/install4j/frontlinesms2_* ~/Dropbox/FrontlineSMS/1\ Software\ Development/frontlinesms\ builds/ 2 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/enable_installer_compression: -------------------------------------------------------------------------------- 1 | sed -i s/pack200Compression=\"false\"/pack200Compression=\"true\"/g ../frontlinesms-core/install/build.install4j 2 | sed -i s/lzmaCompression=\"false\"/lzmaCompression=\"true\"/g ../frontlinesms-core/install/build.install4j 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/functional_test_rewrite_report: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "functional tests with inline selectors:" 3 | grep -lr "\$(" test/functional/frontlinesms2/ | grep -v "/Page" -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/functional_test_unflushed_saves_checker: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "# All domain saves should be flushed in functional tests" 4 | grep -r "save(.*)" test/functional/ | grep -Ev "flush:\s*true|no-flush-deliberate" 5 | searchResult=$? 6 | if [[ "$searchResult" == "0" ]]; then 7 | echo "# Found saves without flush." 8 | exit 1 9 | elif [[ "$searchResult" == "1" ]]; then 10 | echo "# No bad saves found." 11 | exit 0 12 | fi 13 | 14 | echo "# Error with search. Terminating script." 15 | exit 1 16 | 17 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/functional_test_unsafe_text_calls_checker: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "# Checking for Unsafe null dereference calls to .text() method e.g. text().toLowerCase()." 3 | echo "# Ignoring spread operators, e.g. x*.text()" 4 | grep -r "[^*]\.text()\." test/functional/ 5 | 6 | if [ 0 -eq $? ]; then 7 | echo "Found unsafe calls to .text()." 8 | exit 1 9 | fi 10 | 11 | echo "# There were no violations" 12 | 13 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/help_file_scan: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | grep --color='auto' -P -n -r "[\x80-\xFF]" web-app/help 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/i18n/report: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | REPORT_DIR=target 3 | mkdir -p $REPORT_DIR 4 | REPORT_FILE=$REPORT_DIR/i18nreport.txt 5 | echo "# Generating report on completeness of translations in grails-app/i18n/ ..." 6 | for f in grails-app/i18n/messages_*.properties; do 7 | echo "# Processing $f file.." 8 | do/i18n/compare grails-app/i18n/messages.properties $f 9 | echo "# ----" 10 | done > >(tee -a $REPORT_FILE) 11 | echo "# Report generated in $REPORT_FILE" 12 | 13 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/install_property_to_release: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | do/install_property_change RELEASE $@ 4 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/install_property_to_snapshot: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | do/install_property_change SNAPSHOT $@ 4 | 5 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/installer_dbmigration_disable: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | do/install_property_change DISABLE install4j.db.migrations 4 | 5 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/installer_dbmigration_enable: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | do/install_property_change ENABLE install4j.db.migrations 4 | 5 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/jenkins/after: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | do/codenarc_report_postprocess 4 | do/js_unit_test_xml 5 | 6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/jenkins/simulate: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | echo "# Simulating steps of jenkins build on current version..." 4 | 5 | do/jenkins/before 6 | grails test-app -coverage 7 | do/jenkins/after 8 | 9 | echo "# Jenkins build simulation completed successfully." 10 | 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/js_unit_test_xml: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | REPORT_DIR=target/test-reports 4 | mkdir -p $REPORT_DIR 5 | 6 | do/js_unit_test | sgrep '("")' | sed -e 's:::' | do/js_unit_test_lib/xml_filter.groovy | tee $REPORT_DIR/TESTS-javascript-TestSuites.xml | do/js_unit_test_lib/xml_split 7 | 8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/jslint_for_gsp: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | # TODO run each file separately and process into target/plugins/frontlinesms-core/$ORIGINAL_PATH 3 | # TODO load predefs from web-app/js global vars 4 | 5 | TEMP_JS=target/temp.js 6 | do/extract_js_from_gsps $@ 7 | 8 | echo "# Linting..." 9 | do/jslint $TEMP_JS 10 | if [ -z "$@" ]; then 11 | # special case - these scripts are in GSPs but aren't enclosed in tags. 12 | do/jslint grails-app/views/webconnection/*/_scripts.gsp 13 | fi 14 | echo "# Lint complete." 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/jslint_report: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | TARGET_DIR="target/analysis-reports" 4 | TARGET="$TARGET_DIR/jslint.xml" 5 | echo "# Generating jslint report in $TARGET ..." 6 | mkdir -p $TARGET_DIR 7 | do/jslint --json | do/jslint_json_to_xml 'plugins/frontlinesms-core/' > $TARGET 8 | echo "# Report generated in $TARGET" 9 | 10 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/kill-grails: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | kill -9 `ps aux | grep grails | grep -Po -m2 "\w+" | grep -Pm2 "\w+" | tail -n1` 3 | 4 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/mvn_install: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Performing mvn install on related projects." 3 | echo "Updating projects: $@" 4 | 5 | for project in $@; do 6 | echo "Building $project..." 7 | pushd $project && mvn clean install && popd 8 | done 9 | 10 | echo "Done updating projects: $@" 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/optimise_images: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | echo "Optimising PNGs with PNGout..." 3 | 4 | if [ -z "$@" ]; then 5 | IMAGE_LOCATION=web-app/ 6 | else 7 | IMAGE_LOCATION="$@" 8 | fi 9 | 10 | echo "Searching for images in $IMAGE_LOCATION..." 11 | find $IMAGE_LOCATION -name "*.png" -print0 -type f | xargs --null -n 1 pngout -r 12 | echo "Image optimisation complete." 13 | 14 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/rm_plugin_excluded_files: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | 4 | NONEWLINES=$(tr -d '\n' < FrontlinesmsCoreGrailsPlugin.groovy) 5 | FILE_LIST=$(echo $NONEWLINES | grep -o '\[.*\]') 6 | ans=`echo $FILE_LIST | grep -o 'grai.*'` 7 | for i in $ans 8 | do 9 | FILE=$(echo $i | tr -d ',' | tr -d '\"' | tr -d ']' | tr -d '[') 10 | echo "# Deleting from core $FILE" 11 | rm $FILE 12 | done 13 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/snapshots: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | echo "Clearing snapshot directories..." 4 | 5 | while read dir; do 6 | if [ -n "$dir" ]; then 7 | echo "Removing snapshot directory: $dir" 8 | rm -rf ~/.ivy2/cache/$dir 9 | rm -rf ~/.grails/ivy-cache/$dir 10 | fi 11 | done < 'snapshots.list' 12 | 13 | echo "Calling 'grails $@'" 14 | grails $@ 15 | 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/test_and_backup: -------------------------------------------------------------------------------- 1 | grails test-app 2 | do/test_backup 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/test_backup: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | mkdir tmp 3 | echo "Removing old test reports backup..." 4 | rm -rf tmp/test-reports 5 | echo "Backing up latest test reports..." 6 | cp -r target/test-reports tmp 7 | echo "Launching browser to view test reports..." 8 | firefox tmp/test-reports/html/index.html || open tmp/test-reports/html/index.html 9 | 10 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/test_functional: -------------------------------------------------------------------------------- 1 | echo "Starting grails server in test mode..." 2 | grails test run-app & 3 | 4 | echo "Starting grails interactive console..." 5 | TEST_NAME="$1" 6 | if [[ -z "$TEST_NAME" ]]; then 7 | TEST_NAME="YourTestHere" 8 | fi 9 | echo -n "test-app functional:spock -baseUrl=http://localhost:8080/core $TEST_NAME" | grails 10 | 11 | echo "Killing grails server" 12 | kill -9 %1 13 | 14 | echo "Jobs from this process:" 15 | echo `jobs` 16 | echo "Functional testing finished :¬(" 17 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/test_migrations: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | TEMP_DIR=../../../frontlinesms2-db-migrate-test-temp 4 | echo "# Checking if $TEMP_DIR folder exists already..." 5 | TODO 6 | 7 | echo "# Running the tests..." 8 | TODO 9 | 10 | echo "# Cleaning temp dir $TEMP_DIR..." 11 | rm -rf $TEMP_DIR 12 | 13 | echo "# migration test script complete." 14 | 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/do/virtualbox_deploy: -------------------------------------------------------------------------------- 1 | cp install/target/install4j/frontlinesms2-beta_* ~/Desktop/virtualbox-share/ 2 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/conf/ApplicationResources.groovy: -------------------------------------------------------------------------------- 1 | modules = { 2 | application { 3 | resource url:'js/application.js' 4 | } 5 | } -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/conf/spring/resources.groovy: -------------------------------------------------------------------------------- 1 | // Place your Spring DSL code here 2 | beans = { 3 | multipartResolver(frontlinesms2.FrontlineMultipartResolver) { 4 | maxInMemorySize = application.config.upload.maximum.size 5 | maxUploadSize = application.config.upload.maximum.size 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/controllers/frontlinesms2/CustomactivityController.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | class CustomactivityController extends ActivityController { 4 | def customActivityService 5 | 6 | def save() { 7 | withCustomActivity { customActivity -> 8 | doSave(customActivityService, customActivity) 9 | } 10 | } 11 | 12 | private def withCustomActivity = withDomainObject CustomActivity, { params.ownerId } 13 | } 14 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/controllers/frontlinesms2/SystemNotificationController.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | import grails.converters.* 4 | 5 | 6 | class SystemNotificationController extends ControllerUtils { 7 | def markRead() { 8 | withNotification { 9 | it.read = true 10 | it.save(failOnError:true) 11 | render text: message(code: 'system.notification.ok') 12 | } 13 | } 14 | 15 | private def withNotification = withDomainObject SystemNotification 16 | } 17 | 18 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/domain/frontlinesms2/LogEntry.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | class LogEntry { 4 | Date date 5 | String content 6 | 7 | static constraints = { 8 | date(blank: false, nullable: false) 9 | content(blank: false, nullable:false) 10 | } 11 | 12 | static def log(content) { 13 | new LogEntry(date: new Date(), content: content).save(failOnError:true) 14 | return content 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/domain/frontlinesms2/MessageDetail.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | class MessageDetail { 4 | static belongsTo = [message: TextMessage] 5 | enum OwnerType { ACTIVITY, STEP } 6 | 7 | OwnerType ownerType 8 | Long ownerId 9 | String value 10 | 11 | static constraints = { 12 | } 13 | 14 | } 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/domain/frontlinesms2/MessageOwner.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | abstract class MessageOwner { 4 | String name 5 | static hasMany = [messages: TextMessage] 6 | boolean archived 7 | boolean deleted 8 | 9 | static mapping = { 10 | messages sort: 'date' 11 | tablePerHierarchy false 12 | version false 13 | } 14 | 15 | def getDisplayText(TextMessage msg) { 16 | msg.text 17 | } 18 | 19 | def getMoreActions() { [] } 20 | } 21 | 22 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/domain/frontlinesms2/StepProperty.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | class StepProperty { 4 | static belongsTo = [step: Step] 5 | String key 6 | String value 7 | } 8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/jobs/frontlinesms2/EnableFconnectionJob.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | class EnableFconnectionJob { 4 | // TODO can't we just inject the service we want here? 5 | def grailsApplication 6 | 7 | def execute(context) { 8 | def connection = Fconnection.get(context.mergedJobDataMap.get('connectionId').toLong()) 9 | grailsApplication.mainContext.fconnectionService.enableFconnection(connection) 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/jobs/frontlinesms2/ReportSmssyncTimeoutJob.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | class ReportSmssyncTimeoutJob { 4 | def grailsApplication 5 | 6 | def execute(context) { 7 | def connection = Fconnection.get(context.mergedJobDataMap.get('connectionId').toLong()) 8 | grailsApplication.mainContext.smssyncService.reportTimeout(connection) 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/jobs/frontlinesms2/RouteDestroyJob.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | class RouteDestroyJob { 4 | def grailsApplication 5 | 6 | def execute(context) { 7 | grailsApplication.mainContext.fconnectionService.destroyRoutes(context.mergedJobDataMap.get('routeId')) 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/migrations/changelog-0.2.groovy: -------------------------------------------------------------------------------- 1 | databaseChangeLog = { 2 | 3 | changeSet(author: "geoffrey (generated)", id: "1340692427901-1") { 4 | dropIndex(indexName: "TEXT_UNIQUE_1337355800008", tableName: "SYSTEM_NOTIFICATION") 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/migrations/changelog-0.4.groovy: -------------------------------------------------------------------------------- 1 | databaseChangeLog = { 2 | changeSet(author: "vaneyck (generated)", id: "1341328177902-1") { 3 | addColumn(tableName: "poll_response") { 4 | column(name: "aliases", type: "varchar(255)") 5 | } 6 | } 7 | 8 | changeSet(author: "sitati", id:"1341328177902-2") { 9 | grailsChange{ 10 | change{ 11 | sql.executeUpdate("UPDATE poll_response SET aliases = key where key <> 'unknown'") 12 | } 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/migrations/changelog-0.b2.groovy: -------------------------------------------------------------------------------- 1 | databaseChangeLog = { 2 | changeSet(author: "geoffrey (generated)", id: "1338181676777-1") { 3 | addColumn(tableName: "poll") { 4 | column(name: "standard", type: "boolean") 5 | } 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/migrations/changelog-1.0-rc2.groovy: -------------------------------------------------------------------------------- 1 | databaseChangeLog = { 2 | changeSet(author: "frontlinesms (generated)", id: "1345215027861-1") { 3 | addNotNullConstraint(columnDataType: "boolean", columnName: "RECEIVE", tableName: "SMSLIB_FCONNECTION") 4 | } 5 | 6 | changeSet(author: "frontlinesms (generated)", id: "1345215027861-2") { 7 | addNotNullConstraint(columnDataType: "boolean", columnName: "SEND", tableName: "SMSLIB_FCONNECTION") 8 | } 9 | 10 | } 11 | 12 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/routes/EmailTranslationRoute.groovy: -------------------------------------------------------------------------------- 1 | import org.apache.camel.builder.RouteBuilder 2 | 3 | class EmailTranslationRoute { 4 | void configure() { 5 | from('seda:raw-email') 6 | .beanRef('emailTranslationService', 'process') 7 | .to('seda:incoming-fmessages-to-store') 8 | .routeId('email-translation') 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/routes/IncomingMissedCallRoute.groovy: -------------------------------------------------------------------------------- 1 | import org.apache.camel.builder.RouteBuilder 2 | 3 | class IncomingMissedCallRoute extends RouteBuilder { 4 | void configure() { 5 | from('seda:incoming-missedcalls-to-store'). 6 | beanRef('messageStorageService', 'process'). 7 | routeId('missedcall-storage') 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/routes/SmslibTranslationRoute.groovy: -------------------------------------------------------------------------------- 1 | import org.apache.camel.builder.RouteBuilder 2 | 3 | class SmslibTranslationRoute extends RouteBuilder { 4 | void configure() { 5 | from('seda:raw-smslib') 6 | .beanRef('smslibTranslationService', 'toTextMessage') 7 | .to('seda:incoming-fmessages-to-store') 8 | .routeId('smslib-translation') 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/services/frontlinesms2/ApiService.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | class ApiService { 4 | def invokeApiProcess(entity, controller) { 5 | entity.apiProcess(controller) 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/services/frontlinesms2/DataUploadService.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | import groovyx.net.http.HTTPBuilder 4 | 5 | class DataUploadService { 6 | def upload(String url, Map dataToSend) { 7 | def http = new HTTPBuilder(url) 8 | boolean success = false 9 | http.post(body: dataToSend, requestContentType:URLENC) { resp -> 10 | success = resp.statusLine.statusCode == 200 11 | } 12 | success 13 | } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/services/frontlinesms2/GroupService.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | class GroupService { 4 | def delete(Group g) { 5 | GroupMembership.deleteFor(g) 6 | try { 7 | g.delete(flush:true) 8 | return true 9 | } catch(Exception ex) { 10 | ex.printStackTrace() 11 | return false 12 | } 13 | } 14 | } 15 | 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/services/frontlinesms2/IncomingMessageRouterService.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | import org.apache.camel.Endpoint 4 | 5 | class IncomingMessageRouterService { 6 | def camelContext 7 | 8 | def Endpoint[] route(String body) { 9 | camelContext.routes*.endpoint.findAll { it.endpointUri.endsWith('-fmessages-to-process') } 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/services/frontlinesms2/LogService.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | class LogService { 4 | def handleRouteCreated(connection) { 5 | def routes = connection.routeDefinitions 6 | LogEntry.log("Created routes: ${routes*.id}") 7 | } 8 | 9 | def handleRouteCreationFailed(connection) { 10 | LogEntry.log("Error creating routes to fconnection with name ${connection?.name?: connection?.id}") 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/services/frontlinesms2/StatusIndicatorService.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | import frontlinesms2.ConnectionStatus as CS 4 | 5 | class StatusIndicatorService { 6 | def getColor() { 7 | def status = Fconnection.list()*.status 8 | if(CS.CONNECTED in status) { 9 | return 'green' 10 | } else if(CS.CONNECTING in status) { 11 | return 'orange' 12 | } else if(CS.FAILED in status) { 13 | return 'red' 14 | } 15 | return 'grey' 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/services/frontlinesms2/TextMessageInfoService.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | import org.smslib.util.GsmAlphabet 4 | 5 | class TextMessageInfoService { 6 | def getMessageInfos(String text) { 7 | return TextMessageInfoUtils.getMessageInfos(text) 8 | } 9 | } 10 | 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/utils/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/grails-app/utils/.gitkeep -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/_system.gsp: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 | 6 | 7 |
8 | 9 |
10 | 11 | 12 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/_system_notifications.gsp: -------------------------------------------------------------------------------- 1 | 2 |
3 | ${it.text} 4 | x 5 |
6 |
7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/_version_number.gsp: -------------------------------------------------------------------------------- 1 |
2 | 3 | 2.${g.meta(name:'app.version')} 4 |
5 | 6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/announcement/_list_head.gsp: -------------------------------------------------------------------------------- 1 |
    2 |

    3 | 4 |

    5 |
  • 6 | 7 |
  • 8 |
  • 9 | 10 |
  • 11 | 12 |
  • 13 | ${ownerInstance.sentMessageText} 14 |
  • 15 |
    16 |
17 | 18 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/announcement/_message_actions.gsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/grails-app/views/activity/announcement/_message_actions.gsp -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/announcement/show.gsp: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/autoforward/_message_actions.gsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/grails-app/views/activity/autoforward/_message_actions.gsp -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/autoforward/show.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/autoreply/_list_head.gsp: -------------------------------------------------------------------------------- 1 |
    2 |

    3 | 4 |

    5 |
  • 6 | 7 |
  • 8 |
  • 9 | ${ownerInstance.autoreplyText} 10 |
  • 11 | 12 |
  • : ${ownerInstance?.keywords*.value.join(',')}
  • 13 |
    14 |
15 | 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/autoreply/_message_actions.gsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/grails-app/views/activity/autoreply/_message_actions.gsp -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/autoreply/show.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/confirmDelete.gsp: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |

5 |
6 |
-------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/customactivity/_message_actions.gsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/grails-app/views/activity/customactivity/_message_actions.gsp -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/customactivity/show.gsp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/folder/_list_head.gsp: -------------------------------------------------------------------------------- 1 |
    2 |

    3 | 4 |

    5 |
6 | 7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/generic/_list_head.gsp: -------------------------------------------------------------------------------- 1 |
    2 |

    3 | 4 |

    5 |
  • 6 | 7 |
  • 8 |
  • 9 | ${ownerInstance.sentMessageText} 10 |
  • 11 | 12 |
  • : ${ownerInstance?.keywords*.value.join(',')}
  • 13 |
    14 |
15 | 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/generic/_show.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <g:message code="${ownerInstance.shortName}.title" args="${[ownerInstance.name]}"/> 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/subscription/_message_actions.gsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/grails-app/views/activity/subscription/_message_actions.gsp -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/subscription/show.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/webconnection/_message_actions.gsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/grails-app/views/activity/webconnection/_message_actions.gsp -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/activity/webconnection/show.gsp: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/announcement/_save.gsp: -------------------------------------------------------------------------------- 1 |
2 | 3 |

4 |

5 |

6 |

7 |
8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/announcement/confirmDelete.gsp: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |

5 | 6 |

-------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/archive/_header.gsp: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |

5 | 6 |

7 |
8 | 9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/archive/standard.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <g:message code="archive.header.${pageTitle?:params.action}"/> 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/autoforward/_save.gsp: -------------------------------------------------------------------------------- 1 |
2 | 3 |

4 |

5 |

6 |
7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/autoreply/_save.gsp: -------------------------------------------------------------------------------- 1 |
2 | 3 |

4 |

5 |

6 |
7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/connection/_confirm.gsp: -------------------------------------------------------------------------------- 1 | <%@ page import="frontlinesms2.*" %> 2 |
3 |

4 | 5 | 6 | 7 | 8 |
9 | 10 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/connection/_smssync.gsp: -------------------------------------------------------------------------------- 1 |

${c.getFullApiUrl(request)} | 2 | ${g.message(code:"smssync.lastConnected.${c.lastConnectionTime ? 'time' : 'never'}", args:[c.lastConnectionTime ? g.formatDate(date:c.lastConnectionTime):null])} 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/contact/_custom_field.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/contact/_group_membership.gsp: -------------------------------------------------------------------------------- 1 |

  • 2 | ${name} 3 | 4 |
  • 5 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/contact/_search_results.gsp: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/contact/confirmDelete.gsp: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 4 |

    ${params.message}

    5 |
    6 |
    7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/customactivity/_save.gsp: -------------------------------------------------------------------------------- 1 |
    2 | 3 |

    4 |

    5 |

    6 |
    7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/customactivity/_validate.gsp: -------------------------------------------------------------------------------- 1 | 2 | function initializePopup() { 3 | custom_activity.steps = ["join", "leave", "reply", "webconnection"]; 4 | custom_activity.init(); 5 | customActivityDialog.addValidationRules(); 6 | 7 | var initialScripts = ; 8 | webconnectionDialog.setScripts(initialScripts); 9 | } 10 | 11 | 12 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/customactivity/steps/_join.gsp: -------------------------------------------------------------------------------- 1 | <%@ page import="frontlinesms2.Group" %> 2 | 3 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/customactivity/steps/_leave.gsp: -------------------------------------------------------------------------------- 1 | <%@ page import="frontlinesms2.Group" %> 2 | 3 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/customactivity/steps/_reply.gsp: -------------------------------------------------------------------------------- 1 | 2 |
    3 | 4 |
    5 |
    6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/folder/create.gsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 |
    3 | 4 | 5 | 6 |
    7 |
    8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/folder/rename.gsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 |
    3 | 4 | 5 | 6 | 7 |
    8 |
    9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/group/confirmDelete.gsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 |
    3 | 4 | 5 |
    6 |

    7 |
    8 |
    9 |
    -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/group/create.gsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 |
    3 | 4 | 5 | 6 |
    7 |
    8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/help/Helpfile Index Markup.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/grails-app/views/help/Helpfile Index Markup.txt -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/interaction/_interaction_details.gsp: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 4 | 5 |
    6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/interaction/_other_actions.gsp: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 4 | 5 | 6 | 7 | 8 |
    9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/layouts/popup.gsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/message/_select_recipients.gsp: -------------------------------------------------------------------------------- 1 |
    2 | 3 |
    4 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/message/confirmEmptyTrash.gsp: -------------------------------------------------------------------------------- 1 |
    2 | 3 |

    4 |
    5 |
    6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/message/standard.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <g:message code="message.header.${pageTitle?:params.action}" /> 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/missedCall/standard.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <g:message code="missedCall.header.inbox" /> 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/poll/_save.gsp: -------------------------------------------------------------------------------- 1 |
    2 | 3 |

    4 |

    5 |

    6 |

    7 |
    8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/search/no_search.gsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/search/result.gsp: -------------------------------------------------------------------------------- 1 | <%@ page import="frontlinesms2.Contact" %> 2 | 3 | 4 | 5 | <g:message code="search.result.header"/> 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/settings/logsWizard.gsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | 3 |
    4 | 5 |

    6 | 7 | 8 |

    9 |
    10 |
    11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/settings/sections/_database_backup.gsp: -------------------------------------------------------------------------------- 1 |
    2 |

    3 | 4 |

    5 | <% def loc = frontlinesms2.ResourceUtils.resourcePath %> 6 | 7 | 8 |
    -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/settings/sections/_language.gsp: -------------------------------------------------------------------------------- 1 |
    2 |

    3 | 4 | 5 | 10 | 11 |
    12 |
    -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/subscription/_save.gsp: -------------------------------------------------------------------------------- 1 |
    2 | 3 |

    4 |

    5 |

    6 |
    7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/subscription/_validate.gsp: -------------------------------------------------------------------------------- 1 | 2 | function initializePopup() { 3 | subscription.init(); 4 | } 5 | 6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/webconnection/_configure.gsp: -------------------------------------------------------------------------------- 1 | <%@ page import="frontlinesms2.Webconnection" %> 2 |
    3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 |
    -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/webconnection/_confirm.gsp: -------------------------------------------------------------------------------- 1 | <%@ page import="frontlinesms2.Webconnection" %> 2 |
    3 | 4 | 5 | 6 | 7 | 8 | 9 |
    10 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/grails-app/views/webconnection/_save.gsp: -------------------------------------------------------------------------------- 1 |
    2 | 3 |

    4 |
    5 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/.gitignore: -------------------------------------------------------------------------------- 1 | # Maven build directories 2 | target/ 3 | target-custom-classes/ 4 | 5 | # Exploded web-app directory used at runtime and build time 6 | web-app/ 7 | 8 | # Java class files should never be committed 9 | *.class 10 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/README.md: -------------------------------------------------------------------------------- 1 | # Usage 2 | 3 | ## Building 4 | 5 | Just call `mvn clean package`. 6 | 7 | ## Running from command line 8 | Explode your WAR file to `webapps` directory, then call 9 | 10 | mvn exec:exec 11 | 12 | and watch the magic happen. 13 | 14 | # Known Issues 15 | * restarting the server on Linux is bad - RXTX complains about classloader issues, and will then fail to load and attempt to fall back to javax.serial. 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/do/deploy_app_and_run_launcher: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | do/deploy_webapp 4 | do/mvn clean compile exec:java 5 | 6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/do/mvn: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | set -e 3 | echo "Invoking Maven so it thinks we're running build-installers script..." 4 | mvn -Dfrontlinesms.flavour=frontlinesms-core -Dbuild.version=simulated $@ 5 | 6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/fileset/filtered/launcher.properties: -------------------------------------------------------------------------------- 1 | server.port=8130 2 | resource.path=~/.${install4j.app.shortName}-SNAPSHOT-SNAPSHOT-SNAPSHOT-SNAPSHOT-SNAPSHOT 3 | 4 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/assemble/resources/FrontlineSMS.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/assemble/resources/FrontlineSMS.icns -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/assemble/resources/FrontlineSMS.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/assemble/resources/FrontlineSMS.ico -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/assemble/resources/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/assemble/resources/splash.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/install/resources/installer.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/install/resources/installer.icns -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/install/resources/installer.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/install/resources/installer.ico -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/install/resources/installer_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/install/resources/installer_128.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/install/resources/installer_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/install/resources/installer_16.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/install/resources/installer_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/install/resources/installer_32.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/install/resources/installer_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/install/resources/installer_64.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/main/java/net/frontlinesms2/systraymonitor/permissions/PermissionsCheckHandler.java: -------------------------------------------------------------------------------- 1 | package net.frontlinesms2.systraymonitor.permissions; 2 | 3 | public interface PermissionsCheckHandler { 4 | void check(); 5 | } 6 | 7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/main/resources/tray/running.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/main/resources/tray/running.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/main/resources/tray/starting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/main/resources/tray/starting.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/main/resources/tray/stopped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/main/resources/tray/stopped.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/install/src/main/resources/tray/stopping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/install/src/main/resources/tray/stopping.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/scripts/_Install.groovy: -------------------------------------------------------------------------------- 1 | // 2 | // This script is executed by Grails after plugin was installed to project. 3 | // This script is a Gant script so you can use all special variables provided 4 | // by Gant (such as 'baseDir' which points on project base dir). You can 5 | // use 'ant' to access a global instance of AntBuilder 6 | // 7 | // For example you can create directory under project tree: 8 | // 9 | // ant.mkdir(dir:"${basedir}/grails-app/jobs") 10 | // 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/scripts/_Uninstall.groovy: -------------------------------------------------------------------------------- 1 | // 2 | // This script is executed by Grails when the plugin is uninstalled from project. 3 | // Use this script if you intend to do any additional clean-up on uninstall, but 4 | // beware of messing up SVN directories! 5 | // 6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/scripts/_Upgrade.groovy: -------------------------------------------------------------------------------- 1 | // 2 | // This script is executed by Grails during application upgrade ('grails upgrade' 3 | // command). This script is a Gant script so you can use all special variables 4 | // provided by Gant (such as 'baseDir' which points on project base dir). You can 5 | // use 'ant' to access a global instance of AntBuilder 6 | // 7 | // For example you can create directory under project tree: 8 | // 9 | // ant.mkdir(dir:"${basedir}/grails-app/jobs") 10 | // 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/ConnectionStatus.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | enum ConnectionStatus { 4 | CONNECTING, 5 | CONNECTED, 6 | DISABLED, 7 | FAILED, 8 | NOT_CONNECTED 9 | 10 | String getI18n() { 11 | getClass().simpleName.toLowerCase() + "." + name().toLowerCase() 12 | } 13 | } 14 | 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/DetectionStatus.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | enum DetectionStatus { 4 | RED, AMBER, GREEN; 5 | } -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/DispatchStatus.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | public enum DispatchStatus { 4 | PENDING, 5 | FAILED, 6 | SENT 7 | } 8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/EmailReceiveProtocol.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | enum EmailReceiveProtocol { 4 | IMAP, IMAPS, POP3, POP3S; 5 | } 6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/StaticApplicationInstance.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | class StaticApplicationInstance { 4 | private static final String APPINSTANCE_ID = 'frontlinesms.appInstanceId' 5 | static synchronized String getUniqueId() { 6 | def id = System.properties[APPINSTANCE_ID] 7 | if(!id) { 8 | id = "${new Random().nextLong()}" 9 | System.properties[APPINSTANCE_ID] = id 10 | } 11 | return id 12 | } 13 | } 14 | 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/api/FrontlineApiAnnotations.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.api 2 | 3 | import java.lang.annotation.* 4 | 5 | @Retention(RetentionPolicy.RUNTIME) 6 | @interface FrontlineApiAnnotations { // TODO rename this something without "annotations", e.g. FrontlineApiProperties 7 | String apiUrl() default ""; 8 | } 9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/api/FrontlineApiException.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.api 2 | 3 | class FrontlineApiException extends RuntimeException { 4 | FrontlineApiException(String message) { super(message) } 5 | } 6 | 7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/camel/exception/AuthenticationException.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.camel.exception 2 | 3 | 4 | class AuthenticationException extends RuntimeException { 5 | public AuthenticationException(String message) { 6 | super(message) 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/camel/exception/InsufficientCreditException.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.camel.exception 2 | 3 | class InsufficientCreditException extends RuntimeException { 4 | public InsufficientCreditException(String message) { 5 | super(message) 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/camel/exception/InvalidApiIdException.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.camel.exception 2 | 3 | class InvalidApiIdException extends RuntimeException { 4 | public InvalidApiIdException(String message) { 5 | super(message) 6 | } 7 | } 8 | 9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/camel/exception/NoRouteAvailableException.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.camel.exception 2 | 3 | class NoRouteAvailableException extends RuntimeException { 4 | public NoRouteAvailableException(String message) { 5 | super(message) 6 | } 7 | } 8 | 9 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/groovy/frontlinesms2/dev/GroovyHayesResponse.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.dev 2 | 3 | class GroovyHayesResponse { 4 | final String text 5 | final GroovyHayesState nextState 6 | 7 | GroovyHayesResponse(String text, GroovyHayesState nextState) { 8 | this.text = text 9 | this.nextState = nextState 10 | } 11 | } -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/java/.gitkeep: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/src/java/.gitkeep -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/artifacts/Controller.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@class @artifact.name@ { 2 | 3 | def index() { } 4 | } 5 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/artifacts/DomainClass.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@class @artifact.name@ { 2 | 3 | static constraints = { 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/artifacts/Filters.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@class @artifact.name@ { 2 | 3 | def filters = { 4 | all(controller:'*', action:'*') { 5 | before = { 6 | 7 | } 8 | after = { Map model -> 9 | 10 | } 11 | afterView = { Exception e -> 12 | 13 | } 14 | } 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/artifacts/ScaffoldingController.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@class @artifact.name@ { 2 | static scaffold = true 3 | } 4 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/artifacts/Script.groovy: -------------------------------------------------------------------------------- 1 | includeTargets << grailsScript("_GrailsInit") 2 | 3 | target(main: "The description of the script goes here!") { 4 | // TODO: Implement script here 5 | } 6 | 7 | setDefaultTarget(main) 8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/artifacts/Service.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@class @artifact.name@ { 2 | 3 | def serviceMethod() { 4 | 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/artifacts/TagLib.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@class @artifact.name@ { 2 | 3 | } 4 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/artifacts/Tests.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@import grails.test.* 2 | 3 | class @artifact.name@ extends @artifact.superclass@ { 4 | protected void setUp() { 5 | super.setUp() 6 | } 7 | 8 | protected void tearDown() { 9 | super.tearDown() 10 | } 11 | 12 | void testSomething() { 13 | 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/testing/Controller.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@ 2 | 3 | import grails.test.mixin.* 4 | import org.junit.* 5 | 6 | /** 7 | * See the API for {@link grails.test.mixin.web.ControllerUnitTestMixin} for usage instructions 8 | */ 9 | @TestFor(@artifact.testclass@) 10 | class @artifact.name@ { 11 | 12 | void testSomething() { 13 | fail "Implement me" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/testing/DomainClass.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@ 2 | 3 | import grails.test.mixin.* 4 | import org.junit.* 5 | 6 | /** 7 | * See the API for {@link grails.test.mixin.domain.DomainClassUnitTestMixin} for usage instructions 8 | */ 9 | @TestFor(@artifact.testclass@) 10 | class @artifact.name@ { 11 | 12 | void testSomething() { 13 | fail "Implement me" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/testing/Filters.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@ 2 | 3 | import grails.test.mixin.* 4 | 5 | @Mock(@artifact.testclass@) 6 | class @artifact.name@ { 7 | 8 | void testSomething() { 9 | fail "Implement me" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/testing/Generic.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@import static org.junit.Assert.* 2 | import org.junit.* 3 | 4 | class @artifact.name@ { 5 | 6 | @Before 7 | void setUp() { 8 | // Setup logic here 9 | } 10 | 11 | @After 12 | void tearDown() { 13 | // Tear down logic here 14 | } 15 | 16 | @Test 17 | void testSomething() { 18 | fail "Implement me" 19 | } 20 | } 21 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/testing/Service.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@ 2 | 3 | import grails.test.mixin.* 4 | import org.junit.* 5 | 6 | /** 7 | * See the API for {@link grails.test.mixin.services.ServiceUnitTestMixin} for usage instructions 8 | */ 9 | @TestFor(@artifact.testclass@) 10 | class @artifact.name@ { 11 | 12 | void testSomething() { 13 | fail "Implement me" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/src/templates/testing/TagLib.groovy: -------------------------------------------------------------------------------- 1 | @artifact.package@ 2 | 3 | import grails.test.mixin.* 4 | import org.junit.* 5 | 6 | /** 7 | * See the API for {@link grails.test.mixin.web.GroovyPageUnitTestMixin} for usage instructions 8 | */ 9 | @TestFor(@artifact.testclass@) 10 | class @artifact.name@ { 11 | 12 | void testSomething() { 13 | fail "Implement me" 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/style/deploy_for_ie_testing: -------------------------------------------------------------------------------- 1 | rm -rf ~/Desktop/virtualbox-share/style 2 | mkdir ~/Desktop/virtualbox-share/style 3 | cp -r ../style ~/Desktop/virtualbox-share/style 4 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/archive/PageArchive.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.archive 2 | 3 | abstract class PageArchive extends frontlinesms2.message.PageMessage { 4 | static url = 'archive' 5 | } 6 | 7 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/archive/PageArchiveFolder.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.archive 2 | 3 | class PageArchiveFolder extends PageArchive { 4 | static def url = "archive/folder" 5 | 6 | static at = { 7 | title.endsWith('Folder archive') 8 | } 9 | 10 | static content = { 11 | folderNames(required:false) { $(".folder-name-cell a") } 12 | } 13 | } 14 | 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/customactivity/PageMessageCustomActivity.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.customactivity 2 | 3 | import frontlinesms2.* 4 | 5 | class PageMessageCustomActivity extends frontlinesms2.page.PageMessageActivity { 6 | static at = { 7 | title.contains("customactivity") 8 | } 9 | static content = { 10 | moreActions { $('div.header-buttons select#more-actions') } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/help/HelpFSpec.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.help 2 | 3 | import frontlinesms2.popup.* 4 | import frontlinesms2.* 5 | import frontlinesms2.message.PageMessageInbox 6 | 7 | class HelpFSpec extends grails.plugin.geb.GebSpec{ 8 | def 'help link should open the help dialog'() { 9 | given: 'the inbox is open' 10 | to PageMessageInbox 11 | when: 'the help link is clicked' 12 | systemMenu.help.click() 13 | then: 'the help dialog is visible' 14 | at PageHelp 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/help/PageHelp.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.help 2 | 3 | import frontlinesms2.* 4 | import frontlinesms2.popup.MediumPopup 5 | 6 | class PageHelp extends MediumPopup { 7 | static at = { waitFor { popupTitle.contains("help") } } 8 | static content ={ 9 | mainTitlesMessage{ $('') } 10 | subTitles { $('') } 11 | miniSubtitles { $('') } 12 | } 13 | } -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/message/PageMessageInbox.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.message 2 | 3 | import frontlinesms2.* 4 | 5 | class PageMessageInbox extends PageMessage { 6 | static url = 'message/inbox' 7 | 8 | String convertToPath(Object[] args) { 9 | if (!args) { 10 | return '' 11 | } 12 | 13 | if (args[0] instanceof Number) { 14 | return "/show/${args[0]}" 15 | } 16 | 17 | return '' 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/message/PageMessageInboxBob.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.message 2 | 3 | import frontlinesms2.* 4 | 5 | class PageMessageInboxBob extends PageMessageInbox { 6 | static url = "message/inbox/show/${TextMessage.findBySrc('Bob').id}" 7 | } 8 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/message/PageMessagePending.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.message 2 | 3 | class PageMessagePending extends PageMessage { 4 | static url = 'message/pending' 5 | static at = { 6 | title.contains('pending') 7 | } 8 | } -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/missedcall/PageMissedCall.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.message 2 | 3 | import frontlinesms2.* 4 | 5 | class PageMissedCall extends PageMessage { 6 | static url = 'missedCall/inbox' 7 | 8 | String convertToPath(Object[] args) { 9 | if (!args) { 10 | return '' 11 | } 12 | 13 | if (args[0] instanceof Number) { 14 | return "/show/${args[0]}" 15 | } 16 | 17 | return '' 18 | } 19 | } 20 | 21 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/page/PageGroupShow.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.page 2 | 3 | import frontlinesms2.* 4 | import frontlinesms2.contact.PageContactShow 5 | 6 | class PageGroupShow extends PageContactShow { 7 | String convertToPath(Object[] args) { 8 | if(!(args[0] instanceof Group)) { 9 | throw new IllegalArgumentException("Must supply a group.") 10 | } 11 | return super.convertToPath(args) 12 | } 13 | 14 | static at = { Group g -> 15 | title == "Contacts >> $g.name" 16 | } 17 | } 18 | 19 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/search/PageNewSearch.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.search 2 | import frontlinesms2.message.* 3 | 4 | class PageNewSearch extends PageSearch { 5 | static url = 'search/no_search' 6 | 7 | static at = { 8 | title.startsWith("Search") 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/settings/GeneralSettingsSpec.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.settings 2 | 3 | import frontlinesms2.* 4 | 5 | class GeneralSettingsSpec extends grails.plugin.geb.GebSpec { 6 | 7 | def "ensure database backup help is available"(){ 8 | when: 9 | to PageGeneralSettings 10 | then: 11 | databaseBackup.displayed 12 | databaseBackup.title == 'configuration.location.title' 13 | databaseBackup.instruction.contains('configuration.location.description') 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/settings/PageSettings.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.settings 2 | 3 | import frontlinesms2.* 4 | 5 | class PageSettings extends frontlinesms2.page.PageBase { 6 | static url = 'settings' 7 | static at = { 8 | title.contains('Settings') 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/utils/GebUtil.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.utils 2 | import geb.* 3 | import geb.navigator.* 4 | 5 | @Category(grails.plugin.geb.GebSpec) 6 | class GebUtil { 7 | def getColumnText(tableId, columnIndex) { 8 | return $("#$tableId tr td:nth-child(${columnIndex+1})")*.text() 9 | } 10 | } 11 | 12 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/functional/frontlinesms2/webconnection/WebconnectionCedSpec.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.webconnection 2 | 3 | import frontlinesms2.* 4 | import frontlinesms2.message.* 5 | import frontlinesms2.popup.* 6 | 7 | class WebconnectionCedSpec extends WebconnectionBaseSpec { 8 | def "can launch web connection create wizard from create new activity link"() { 9 | expect: 10 | launchWizard() 11 | } 12 | } 13 | 14 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/integration/frontlinesms2/controller/ArchiveISpec.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.controller 2 | 3 | import spock.lang.* 4 | import grails.plugin.spock.* 5 | import frontlinesms2.* 6 | 7 | class ArchiveISpec extends IntegrationSpec { 8 | def folderController, pollController, archiveController 9 | 10 | def setup() { 11 | pollController = new PollController() 12 | folderController = new FolderController() 13 | archiveController = new ArchiveController() 14 | } 15 | } 16 | 17 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/integration/frontlinesms2/domain/LogEntryISpec.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.domain 2 | 3 | import frontlinesms2.* 4 | 5 | class LogEntryISpec extends grails.plugin.spock.IntegrationSpec { 6 | 7 | def "calling log on LogEntry creates a log entry"() { 8 | when: 9 | LogEntry.log("some log of something") 10 | then: 11 | LogEntry.findByContent("some log of something") 12 | } 13 | } 14 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/integration/help/testHelp.txt: -------------------------------------------------------------------------------- 1 | This is test content for the help 2 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/js/check_list/standard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
    16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/js/lib/js_test_util.js: -------------------------------------------------------------------------------- 1 | fail = function(message) { 2 | console.log("Explicit call to fail with message: " + message); 3 | ok(false, message); 4 | }; 5 | 6 | TODO = function(message) { 7 | console.log("TODO: " + message); 8 | if(message === undefined) { 9 | fail(); 10 | } else { 11 | test("TODO: " + message, function() { fail(); }); 12 | } 13 | }; 14 | 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/js/recipient_selecter/standard.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 |

    0

    8 |

    0

    9 |

    0

    10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/migration/.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | .gradle/ 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/migration/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'groovy' 2 | apply plugin: 'application' 3 | 4 | mainClassName = 'MigrationSpec' 5 | 6 | repositories { 7 | mavenCentral() 8 | } 9 | 10 | dependencies { 11 | groovy group:'org.codehaus.groovy', name:'groovy', version:'1.8.6' 12 | groovy group:'org.codehaus.groovy.modules.remote', name:'remote-transport-http', version:'0.5' 13 | } 14 | 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/migration/gradle.properties: -------------------------------------------------------------------------------- 1 | buildDir=../../../../../migation-test-temp 2 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/migration/src/main/groovy/frontlinesms2/ClassDeclarations.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | /* 4 | * This file should be used for stubbing all classes in this package. 5 | */ 6 | 7 | class Autoreply {} 8 | class ClickatellFconnection {} 9 | class TextMessage {} 10 | class Keyword {} 11 | class Poll {} 12 | class PollResponse {} 13 | 14 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/unit/SearchUrlMappingSpec.groovy: -------------------------------------------------------------------------------- 1 | import spock.lang.* 2 | 3 | import frontlinesms2.* 4 | 5 | @TestFor(CoreUrlMappings) 6 | @Mock(SearchController) 7 | class SearchUrlMappingSpec extends Specification { 8 | def testSearchMapping() { 9 | expect: 10 | assertForwardUrlMapping('/search/result/show/123', controller:'search', action:'result') { 11 | interactionId = 123 12 | } 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/unit/frontlinesms2/QueuedDispatchSpec.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | import grails.test.mixin.* 4 | import spock.lang.* 5 | import grails.buildtestdata.mixin.Build 6 | 7 | 8 | @TestFor(QueuedDispatch) 9 | @Build([Fconnection, Dispatch]) 10 | class QueuedDispatchSpec extends Specification { 11 | def 'create should save a QueuedDispacth'() { 12 | when: 13 | QueuedDispatch.create(Fconnection.build(), Dispatch.build(), true) 14 | then: 15 | QueuedDispatch.getAll().size() == 1 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/test/unit/frontlinesms2/TrashSpec.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2 2 | 3 | import spock.lang.* 4 | import grails.test.mixin.* 5 | 6 | @TestFor(Trash) 7 | class TrashSpec extends Specification { 8 | def 'findByObject should work'() { 9 | setup: 10 | def saved = new Trash(objectClass:HashMap, id:1).save() 11 | when: 12 | def found = Trash.findByObject([id:1]) 13 | then: 14 | saved == found 15 | } 16 | } 17 | 18 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/META-INF/context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/WEB-INF/context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/css/activity.css: -------------------------------------------------------------------------------- 1 | #modalBox.ui-dialog-content div.input.select.radio label { margin:5px 25px; } 2 | #modalBox.ui-dialog-content div.generic_sorting_tab div.info p { padding-bottom:5px; } 3 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/css/activity/poll.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/css/activity/poll.css -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/css/color.css: -------------------------------------------------------------------------------- 1 | ::-webkit-input-placeholder { color:#aaa; } 2 | :-moz-placeholder { color:#aaa; } 3 | ::-moz-placeholder { color:#aaa; } 4 | :-ms-input-placeholder { color:#aaa; } 5 | 6 | input[disabled]::-webkit-input-placeholder { color:#EEEEEE; } 7 | input[disabled]:-moz-placeholder { color:#EEEEEE; } 8 | input[disabled]::-moz-placeholder { color:#EEEEEE; } 9 | input[disabled]:-ms-input-placeholder { color:#EEEEEE; } 10 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/archive/activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/archive/activity.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/archive/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/archive/folder.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/archive/inbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/archive/inbox.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/archive/sent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/archive/sent.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/button/active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/button/active.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/button/disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/button/disabled.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/button/hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/button/hover.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/button/standard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/button/standard.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/chosen-sprite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/chosen-sprite.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/chosen-sprite@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/chosen-sprite@2x.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/favicon.ico -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/flags.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/flags.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/frontline-flag.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/frontline-flag.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/frontlinesync_play_badge.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/frontlinesync_play_badge.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/head_background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/head_background.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/ConnectionsRoutingRules.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/ConnectionsRoutingRules.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/ConnectionsRoutingRules2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/ConnectionsRoutingRules2.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/ContactEdits.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/ContactEdits.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/ContactImport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/ContactImport.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/ContactMultipleDelete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/ContactMultipleDelete.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/ContactNew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/ContactNew.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CABAddStep.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CABAddStep.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CABKeyword.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CABKeyword.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CABRemoveFromGroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CABRemoveFromGroup.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CABSave.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CABSave.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CABSelectGroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CABSelectGroup.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CreateCustomActivity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/CreateCustomActivity.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/EditingCAB.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/CustomActivityBuilder/EditingCAB.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/activity_archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/activity_archive.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/activity_archive_detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/activity_archive_detail.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/activity_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/activity_delete.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/activity_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/activity_overview.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/activityunarchive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/activityunarchive.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/add_contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/add_contact.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/add_more_info.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/add_more_info.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/add_new_connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/add_new_connection.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/add_to_group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/add_to_group.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/advanced_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/advanced_search.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/aliases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/aliases.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/announcement1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/announcement1.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/announcement2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/announcement2.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/announcement3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/announcement3.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/announcement4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/announcement4.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/archive_activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/archive_activity.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/archive_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/archive_overview.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/autoforward1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/autoforward1.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/autoforward2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/autoforward2.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/autoforward3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/autoforward3.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/autoforward4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/autoforward4.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/autoforward5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/autoforward5.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/autoforward6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/autoforward6.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/autoreply1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/autoreply1.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/autoreply2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/autoreply2.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/autoreply3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/autoreply3.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/autoreply4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/autoreply4.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/basic_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/basic_search.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/clickatell.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/clickatell.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/clickatell_confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/clickatell_confirm.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/connecting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/connecting.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/contact_import/ImportFailNotice.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/contact_import/ImportFailNotice.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/contact_import/ReviewContactImport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/contact_import/ReviewContactImport.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/contact_import/Screenshot_5_20_13_4_24_PM.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/contact_import/Screenshot_5_20_13_4_24_PM.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/contact_import/Settings___Import___Export-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/contact_import/Settings___Import___Export-2.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/contact_search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/contact_search.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/contact_select.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/contact_select.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/contacts_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/contacts_overview.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/create_group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/create_group.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/create_group_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/create_group_dialog.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/create_smartgroup.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/create_smartgroup.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/creating_activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/creating_activity.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/creating_folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/creating_folder.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/delete_connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/delete_connection.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/delete_contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/delete_contact.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/delete_multiple_contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/delete_multiple_contact.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/destroy_route.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/destroy_route.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/detect_activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/detect_activity.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/edit_connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/edit_connection.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/export_activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/export_activity.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/export_contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/export_contact.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/export_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/export_dialog.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/export_message_tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/export_message_tab.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/export_search_tab.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/export_search_tab.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/filtering2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/filtering2.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/filtering_messages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/filtering_messages.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/folder_archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/folder_archive.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/folder_archive_detail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/folder_archive_detail.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/folder_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/folder_dialog.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/folder_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/folder_overview.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/forward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/forward.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/frontlinesync/1.1.Add-New-Connection.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/frontlinesync/1.1.Add-New-Connection.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/frontlinesync/1.2.Select-Modem-Type.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/frontlinesync/1.2.Select-Modem-Type.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/frontlinesync/1.3.Connection-Name.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/frontlinesync/1.3.Connection-Name.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/frontlinesync/1.4.orange_connection.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/frontlinesync/1.4.orange_connection.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/frontlinesync/2.1.config.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/frontlinesync/2.1.config.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/frontlinesync/2.2.passcode_and_ip.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/frontlinesync/2.2.passcode_and_ip.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/frontlinesync/2.3.options.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/frontlinesync/2.3.options.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/frontlinesync/3.1.green_connection.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/frontlinesync/3.1.green_connection.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/frontlinesync/3.2.too_many_sms.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/frontlinesync/3.2.too_many_sms.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/group_dropdown.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/group_dropdown.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/groupexport.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/groupexport.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/inbox_archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/inbox_archive.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/intellisms.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/intellisms.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/intellisms_confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/intellisms_confirm.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/manual_response.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/manual_response.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/message_tab_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/message_tab_overview.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/messageforward.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/messageforward.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/mrfd_multiple.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/mrfd_multiple.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/mrfd_reply.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/mrfd_reply.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/multiple_add_to_group.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/multiple_add_to_group.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/namecustomfield.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/namecustomfield.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/pending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/pending.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/phone_modem.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/phone_modem.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/phone_modem_confirm.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/phone_modem_confirm.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/poll1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/poll1.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/poll2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/poll2.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/poll3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/poll3.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/poll4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/poll4.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/poll5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/poll5.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/poll6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/poll6.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/poll7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/poll7.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/poll8.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/poll8.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/poll9.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/poll9.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/poll_chart.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/poll_chart.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/pollkeywords.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/pollkeywords.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/quick_message1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/quick_message1.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/quickmessage2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/quickmessage2.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/quickmessage3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/quickmessage3.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/quickmessagecontact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/quickmessagecontact.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/remove_single_contact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/remove_single_contact.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/removesinglecontact.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/removesinglecontact.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/rename_poll.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/rename_poll.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/rename_poll_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/rename_poll_dialog.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/search_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/search_overview.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/sent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/sent.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/sent_archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/sent_archive.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/settings_basicauth.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/settings_basicauth.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/settings_connections.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/settings_connections.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/settings_import.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/settings_import.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/settings_language.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/settings_language.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/settings_menu.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/settings_menu.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smartgroup_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smartgroup_dialog.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/Configure_your_Connections-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/Configure_your_Connections-2.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/Configure_your_Connections-5.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/Configure_your_Connections-5.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/Configure_your_Connections.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/Configure_your_Connections.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/SMSSync_Configure_your_Connections.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/SMSSync_Configure_your_Connections.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/Screenshot_6_7_13_2_35_PM.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/Screenshot_6_7_13_2_35_PM.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/Screenshot_6_7_13_3_03_PM-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/Screenshot_6_7_13_3_03_PM-2.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/Screenshot_6_7_13_3_11_PM-2.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/Screenshot_6_7_13_3_11_PM-2.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/account_selected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/account_selected.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/add_sync_url.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/add_sync_url.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/add_sync_url_filled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/add_sync_url_filled.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/enable_sync_and_tasks.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/enable_sync_and_tasks.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/initial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/initial.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/no_activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/no_activity.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/photo_1-3.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/photo_1-3.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/smssync/sync_frequency.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/smssync/sync_frequency.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/sss.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/sss.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/status_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/status_overview.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/subscription1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/subscription1.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/subscription2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/subscription2.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/subscription3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/subscription3.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/subscription4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/subscription4.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/subscription5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/subscription5.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/successfully_connected.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/successfully_connected.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/test_image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/test_image.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/trash.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/unarchive_message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/unarchive_message.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/using_traffic_graph.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/using_traffic_graph.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/view_sent_received_messages.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/view_sent_received_messages.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/webconnection1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/webconnection1.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/webconnection2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/webconnection2.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/webconnection3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/webconnection3.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/webconnection4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/webconnection4.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/webconnection5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/webconnection5.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/webconnection6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/webconnection6.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/help/webconnection7.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/help/webconnection7.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/accordion-expanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/accordion-expanded.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/accordion-unexpanded.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/accordion-unexpanded.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/activity.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/activity.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/add.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/calendar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/calendar.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/contacts.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/contacts.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/createnew.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/createnew.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/down_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/down_arrow.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/draggable.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/draggable.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/error.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/error.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/error_on.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/error_on.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/folder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/folder.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/grabber.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/grabber.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/groups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/groups.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/help.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/help.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/inbox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/inbox.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/magic_wand.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/magic_wand.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/message.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/messagehistory.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/messagehistory.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/quickmessage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/quickmessage.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/remove.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/remove.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/remove_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/remove_hover.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/save.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/search.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/send.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/send.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/smartgroups.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/smartgroups.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/star.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/star_outline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/star_outline.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/toggle_minus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/toggle_minus.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/toggle_plus.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/toggle_plus.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/trash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/trash.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/up_arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/up_arrow.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/icons/ushahidi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/icons/ushahidi.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/logo.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/menubar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/menubar.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/menubar_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/menubar_2.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/failed.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/gray-ajax-spinner.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/gray-ajax-spinner.gif -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/ownerdetail-completed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/ownerdetail-completed.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/ownerdetail-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/ownerdetail-failed.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/ownerdetail-pending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/ownerdetail-pending.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/pending-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/pending-failed.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/pending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/pending.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/received.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/received.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/sent-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/sent-failed.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/sent-pending-failed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/sent-pending-failed.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/sent-pending.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/sent-pending.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/message/sent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/message/sent.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/pagination/left.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/pagination/left.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/pagination/left_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/pagination/left_active.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/pagination/left_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/pagination/left_disabled.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/pagination/left_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/pagination/left_hover.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/pagination/right.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/pagination/right.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/pagination/right_active.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/pagination/right_active.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/pagination/right_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/pagination/right_disabled.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/pagination/right_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/pagination/right_hover.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/skin/database_add.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/skin/database_add.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/skin/database_delete.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/skin/database_delete.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/skin/database_edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/skin/database_edit.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/skin/database_save.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/skin/database_save.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/skin/database_table.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/skin/database_table.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/skin/exclamation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/skin/exclamation.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/skin/house.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/skin/house.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/skin/information.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/skin/information.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/skin/shadow.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/skin/shadow.jpg -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/skin/sorted_asc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/skin/sorted_asc.gif -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/skin/sorted_desc.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/skin/sorted_desc.gif -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/status/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/status/green.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/status/grey.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/status/grey.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/status/orange.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/status/orange.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/status/red.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/status/red.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/connection.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/connection.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/connection_current.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/connection_current.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/connection_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/connection_hover.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/connection_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/connection_pressed.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/message.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/message.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/message_current.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/message_current.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/message_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/message_hover.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/message_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/message_pressed.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/standard.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/standard.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/standard_current.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/standard_current.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/standard_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/standard_hover.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/standard_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/standard_pressed.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/status.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/status.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/status_current.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/status_current.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/status_hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/status_hover.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tab/status_pressed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tab/status_pressed.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tabbar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tabbar.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/tabbar_2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/tabbar_2.png -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/images/thinking.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/images/thinking.gif -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/jni/linux/amd64/librxtxSerial.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/jni/linux/amd64/librxtxSerial.so -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/jni/linux/i686/librxtxSerial.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/jni/linux/i686/librxtxSerial.so -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/jni/linux/x86_64/librxtxSerial.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/jni/linux/x86_64/librxtxSerial.so -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/jni/mac/i686/librxtxSerial.jnilib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/jni/mac/i686/librxtxSerial.jnilib -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/jni/mac/x86_64/librxtxSerial.jnilib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/jni/mac/x86_64/librxtxSerial.jnilib -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/jni/windows/i686/win32com.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/jni/windows/i686/win32com.dll -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/jni/windows/javax.comm.properties: -------------------------------------------------------------------------------- 1 | Driver=com.sun.comm.Win32Driver 2 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/jquery-ui/themes/medium/jquery-ui.custom.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/frontlinesms-core/web-app/jquery-ui/themes/medium/jquery-ui.custom.css -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/jquery-ui/themes/medium/jquery.ui.progressbar.css: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Progressbar @VERSION 3 | * 4 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 5 | * Dual licensed under the MIT or GPL Version 2 licenses. 6 | * http://jquery.org/license 7 | * 8 | * http://docs.jquery.com/UI/Progressbar#theming 9 | */ 10 | .ui-progressbar { height:2em; text-align: left; } 11 | .ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; } -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/jquery-ui/themes/medium/jquery.ui.selectable.css: -------------------------------------------------------------------------------- 1 | /* 2 | * jQuery UI Selectable @VERSION 3 | * 4 | * Copyright 2011, AUTHORS.txt (http://jqueryui.com/about) 5 | * Dual licensed under the MIT or GPL Version 2 licenses. 6 | * http://jquery.org/license 7 | * 8 | * http://docs.jquery.com/UI/Selectable#theming 9 | */ 10 | .ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; } 11 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/js/contact/search_within_list.js: -------------------------------------------------------------------------------- 1 | function getGroupId(){ 2 | var group = $('#groupId'); 3 | return group.length ? group.val() : ''; 4 | } 5 | 6 | function updateContacts(data) { 7 | var replacement = $(data); 8 | $("#main-list").replaceWith(replacement.filter('#main-list')); 9 | $("#paging").replaceWith(replacement.find('#paging')); 10 | disablePaginationControls(); 11 | } 12 | 13 | $(function() { 14 | disablePaginationControls(); 15 | $("#contact-search").renderDefaultText(); 16 | }); -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/js/contactsearch.js: -------------------------------------------------------------------------------- 1 | contactsearch = { 2 | init: function(searchWidgets) { 3 | ajaxChosen.init(); 4 | $.each(searchWidgets, function(index, element) { 5 | $(element).ajaxChosen({ 6 | url:url_root+"search/contactSearch", 7 | type:"POST", 8 | dataType:"json", 9 | minTermLength:1, 10 | keepTypingMsg:i18n("recipientSelector.keepTyping"), 11 | lookingForMsg:i18n("recipientSelector.searching"), 12 | sendSelectedSoFarOnEachLookup:true 13 | }); 14 | }); 15 | } 16 | }; 17 | 18 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/js/group/generate-message.js: -------------------------------------------------------------------------------- 1 | function generateMessage(messageType){ 2 | switch (messageType) { 3 | case "join_reply": 4 | $('input[name=joinReplyMessage]').val(i18n("group.join.reply.message")); 5 | $('#join_reply_checkbox').attr('checked',true); 6 | break; 7 | case "leave_reply": 8 | $('input[name=leaveReplyMessage]').val(i18n("group.leave.reply.message")); 9 | $('#leave_reply_checkbox').attr('checked',true); 10 | break; 11 | default: 12 | break; 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/js/message/star_message.js: -------------------------------------------------------------------------------- 1 | function setStarStatus(object,data){ 2 | if(data === 'starred') { 3 | $("#" + object + " a").removeClass("unstarred"); 4 | $("#" + object + " a").addClass(data); 5 | } else { 6 | $("#" + object + " a").removeClass("starred"); 7 | $("#" + object + " a").addClass(data); 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/js/sanchez.min.js: -------------------------------------------------------------------------------- 1 | sanchez=function(){var e=function(e,t,r,i){$(t)[e](n(r,i))},t=function(e){return new RegExp("((%7B%7B)|(\\{\\{))"+e+"((%7D%7D)|(\\}\\}))","g")},n=function(e,n){var r,i;i=$("#"+e).html();for(r in n)i=i.replace(t(r),n[r]);return i};return{template:n,append:function(t,n,r){e("append",t,n,r)},prepend:function(t,n,r){e("prepend",t,n,r)},replace:function(t,n,r){e("replaceWith",t,n,r)},replaceContent:function(t,n,r){e("html",t,n,r)}}}(); -------------------------------------------------------------------------------- /plugins/frontlinesms-core/web-app/js/search/basicFilters.js: -------------------------------------------------------------------------------- 1 | function toggleInArchiveEnabled() { 2 | var checkbox = $('#inArchive'); 3 | if ($(this).val() !== "") { 4 | checkbox.attr("checked", "true"); 5 | checkbox.attr("disabled", "disabled"); 6 | $('label[for="inArchive"').attr("disabled", "disabled"); 7 | } else { 8 | checkbox.removeAttr("disabled"); 9 | $('label[for="inArchive"').removeAttr("disabled"); 10 | } 11 | } 12 | 13 | $(function() { 14 | $('#activityId').change(toggleInArchiveEnabled); 15 | }); 16 | 17 | -------------------------------------------------------------------------------- /plugins/radio/application.properties: -------------------------------------------------------------------------------- 1 | #Grails Metadata file 2 | #Wed Feb 13 17:58:33 EAT 2013 3 | app.grails.version=2.0.3 4 | app.name=radio 5 | app.servlet.version=2.5 6 | app.version=0.b2 7 | plugins.tomcat=2.0.3 8 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/conf/DataSource.groovy: -------------------------------------------------------------------------------- 1 | // environment specific settings 2 | environments { 3 | production { 4 | dataSource { 5 | url = "jdbc:h2:${frontlinesms2.ResourceUtils.resourcePath}/radioProdDb;MVCC=TRUE" 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/conf/RadioResources.groovy: -------------------------------------------------------------------------------- 1 | modules = { 2 | common { dependsOn 'frontlinesms-radio' } 3 | 'frontlinesms-radio' { 4 | dependsOn 'frontlinesms-core' 5 | resource url:[dir:'css', file:'radio.css'] 6 | resource url:[dir:'css', file:'jqcloud.css'] 7 | resource url:[dir:'js', file:'on_air.js'], disposition:'head' 8 | resource url:[dir:'js', file:'jqcloud-1.0.0.js'], disposition:'head' 9 | resource url:[dir:'js', file:'word_cloud.js'], disposition:'head' 10 | } 11 | } 12 | 13 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/migrations/changelog-1.0.1.groovy: -------------------------------------------------------------------------------- 1 | databaseChangeLog = { 2 | 3 | changeSet(author: "geoffrey (generated)", id: "1341821687497-1") { 4 | addColumn(tableName: "poll_response") { 5 | column(name: "aliases", type: "varchar(255)") 6 | } 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/migrations/changelog.groovy: -------------------------------------------------------------------------------- 1 | databaseChangeLog = { 2 | 3 | changeSet(author: "geoffrey (generated)", id: "changelog") { 4 | // TODO add changes and preconditions here 5 | } 6 | 7 | include file: 'changelog-1.0.groovy' 8 | 9 | include file: 'changelog-1.0.1.groovy' 10 | 11 | include file: 'changelog-1.0.2.groovy' 12 | } 13 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/routes/RadioShowIncomingFmessageRoute.groovy: -------------------------------------------------------------------------------- 1 | import org.apache.camel.builder.RouteBuilder 2 | 3 | class RadioShowIncomingFmessageRoute extends RouteBuilder { 4 | void configure() { 5 | from('seda:radioshow-fmessages-to-process'). 6 | beanRef('radioShowService', 'process'). 7 | routeId('radio-message-processing') 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/views/activity/generic/_show.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | <g:message code="${ownerInstance.shortName}.title" args="${[ownerInstance.name]}"/> 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/views/archive/showArchive.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ${pageTitle?:params.action.capitalize()} 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/views/help/_index.gsp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/grails-app/views/help/_index.gsp -------------------------------------------------------------------------------- /plugins/radio/grails-app/views/message/standard.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ${pageTitle?:params.action.capitalize()} 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/views/radioShow/confirmDelete.gsp: -------------------------------------------------------------------------------- 1 |
    2 | 3 | 4 |

    5 |
    6 |
    -------------------------------------------------------------------------------- /plugins/radio/grails-app/views/radioShow/create.gsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | 3 | 4 | 5 |
    6 |
    7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/views/radioShow/rename.gsp: -------------------------------------------------------------------------------- 1 | <%@ page contentType="text/html;charset=UTF-8" %> 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/views/radioShow/standard.gsp: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | ${pageTitle?:params.action.capitalize()} 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/views/webconnection/_confirm.gsp: -------------------------------------------------------------------------------- 1 | <%@ page import="frontlinesms2.Webconnection" %> 2 |
    3 | 4 | 5 | 6 | 7 | 8 | 9 |
    10 | -------------------------------------------------------------------------------- /plugins/radio/grails-app/views/wordcloud/_wordcloud.gsp: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /plugins/radio/install/fileset/filtered/launcher.properties: -------------------------------------------------------------------------------- 1 | server.port=8131 2 | resource.path=~/.${install4j.app.shortName} 3 | 4 | -------------------------------------------------------------------------------- /plugins/radio/install/src/assemble/resources/radio.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/assemble/resources/radio.icns -------------------------------------------------------------------------------- /plugins/radio/install/src/assemble/resources/radio.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/assemble/resources/radio.ico -------------------------------------------------------------------------------- /plugins/radio/install/src/assemble/resources/splash.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/assemble/resources/splash.png -------------------------------------------------------------------------------- /plugins/radio/install/src/install/resources/installer_128.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/install/resources/installer_128.png -------------------------------------------------------------------------------- /plugins/radio/install/src/install/resources/installer_16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/install/resources/installer_16.png -------------------------------------------------------------------------------- /plugins/radio/install/src/install/resources/installer_32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/install/resources/installer_32.png -------------------------------------------------------------------------------- /plugins/radio/install/src/install/resources/installer_64.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/install/resources/installer_64.png -------------------------------------------------------------------------------- /plugins/radio/install/src/install/resources/radio-installer.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/install/resources/radio-installer.icns -------------------------------------------------------------------------------- /plugins/radio/install/src/install/resources/radio-installer.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/install/resources/radio-installer.ico -------------------------------------------------------------------------------- /plugins/radio/install/src/main/resources/tray/running.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/main/resources/tray/running.png -------------------------------------------------------------------------------- /plugins/radio/install/src/main/resources/tray/starting.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/main/resources/tray/starting.png -------------------------------------------------------------------------------- /plugins/radio/install/src/main/resources/tray/stopped.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/main/resources/tray/stopped.png -------------------------------------------------------------------------------- /plugins/radio/install/src/main/resources/tray/stopping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/install/src/main/resources/tray/stopping.png -------------------------------------------------------------------------------- /plugins/radio/scripts/_Install.groovy: -------------------------------------------------------------------------------- 1 | // 2 | // This script is executed by Grails after plugin was installed to project. 3 | // This script is a Gant script so you can use all special variables provided 4 | // by Gant (such as 'baseDir' which points on project base dir). You can 5 | // use 'ant' to access a global instance of AntBuilder 6 | // 7 | // For example you can create directory under project tree: 8 | // 9 | // ant.mkdir(dir:"${basedir}/grails-app/jobs") 10 | // 11 | -------------------------------------------------------------------------------- /plugins/radio/scripts/_Uninstall.groovy: -------------------------------------------------------------------------------- 1 | // 2 | // This script is executed by Grails when the plugin is uninstalled from project. 3 | // Use this script if you intend to do any additional clean-up on uninstall, but 4 | // beware of messing up SVN directories! 5 | // 6 | -------------------------------------------------------------------------------- /plugins/radio/scripts/_Upgrade.groovy: -------------------------------------------------------------------------------- 1 | // 2 | // This script is executed by Grails during application upgrade ('grails upgrade' 3 | // command). This script is a Gant script so you can use all special variables 4 | // provided by Gant (such as 'baseDir' which points on project base dir). You can 5 | // use 'ant' to access a global instance of AntBuilder 6 | // 7 | // For example you can create directory under project tree: 8 | // 9 | // ant.mkdir(dir:"${basedir}/grails-app/jobs") 10 | // 11 | -------------------------------------------------------------------------------- /plugins/radio/test/functional/frontlinesms2/utils/GebUtil.groovy: -------------------------------------------------------------------------------- 1 | package frontlinesms2.utils 2 | import geb.* 3 | import geb.navigator.* 4 | 5 | @Category(geb.spock.GebReportingSpec) 6 | class GebUtil { 7 | def getColumnText(tableId, columnIndex) { 8 | return $("table#$tableId tr td:nth-child(${columnIndex+1})")*.text() 9 | } 10 | } 11 | -------------------------------------------------------------------------------- /plugins/radio/web-app/help/.gitignore: -------------------------------------------------------------------------------- 1 | core 2 | -------------------------------------------------------------------------------- /plugins/radio/web-app/images/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/favicon.ico -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/add_to_show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/add_to_show.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/assign_to_show_activity_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/assign_to_show_activity_dialog.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/assign_to_show_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/assign_to_show_dialog.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/creating_show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/creating_show.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/creating_show_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/creating_show_dialog.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/deleting_shows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/deleting_shows.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/export_show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/export_show.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/export_show_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/export_show_dialog.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/ignore_word.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/ignore_word.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/rename_show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/rename_show.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/rename_show_dialog.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/rename_show_dialog.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/show_archive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/show_archive.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/show_overview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/show_overview.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/unarchive_show.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/unarchive_show.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/help/wordcloud.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/help/wordcloud.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/logo.png -------------------------------------------------------------------------------- /plugins/radio/web-app/images/shows.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/images/shows.png -------------------------------------------------------------------------------- /plugins/radio/web-app/jni/linux/amd64/librxtxSerial.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/jni/linux/amd64/librxtxSerial.so -------------------------------------------------------------------------------- /plugins/radio/web-app/jni/linux/i686/librxtxSerial.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/jni/linux/i686/librxtxSerial.so -------------------------------------------------------------------------------- /plugins/radio/web-app/jni/linux/x86_64/librxtxSerial.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/jni/linux/x86_64/librxtxSerial.so -------------------------------------------------------------------------------- /plugins/radio/web-app/jni/mac/i686/librxtxSerial.jnilib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/jni/mac/i686/librxtxSerial.jnilib -------------------------------------------------------------------------------- /plugins/radio/web-app/jni/mac/x86_64/librxtxSerial.jnilib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/jni/mac/x86_64/librxtxSerial.jnilib -------------------------------------------------------------------------------- /plugins/radio/web-app/jni/windows/i686/win32com.dll: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/frontlinesms/frontlinesms2/2be1762b27e49f75c4968cc0ab56d1dadebb753e/plugins/radio/web-app/jni/windows/i686/win32com.dll -------------------------------------------------------------------------------- /plugins/radio/web-app/jni/windows/javax.comm.properties: -------------------------------------------------------------------------------- 1 | Driver=com.sun.comm.Win32Driver 2 | --------------------------------------------------------------------------------