├── Classes ├── Application │ ├── ApplicationFilter.php │ ├── ApplicationQuery.php │ ├── ApplicationRating.php │ ├── ApplicationStatus.php │ └── Note │ │ └── NoteSubject.php ├── Command │ ├── ApplicationsCommandController.php │ └── UsersCommandController.php ├── Controller │ ├── Application │ │ ├── AbstractApplicationController.php │ │ ├── AdditionalDataController.php │ │ ├── FormController.php │ │ ├── PersonalDataController.php │ │ ├── QualificationsController.php │ │ ├── SimpleFormController.php │ │ ├── SubmitController.php │ │ └── UploadController.php │ ├── Backend │ │ ├── AbstractBackendController.php │ │ ├── AjaxApplicationController.php │ │ ├── ApplicationController.php │ │ ├── ArchivedApplicationController.php │ │ ├── NotificationApplicationController.php │ │ └── StatisticsController.php │ └── JobController.php ├── Domain │ ├── Model │ │ ├── AbstractApplication.php │ │ ├── Application.php │ │ ├── ApplicationA.php │ │ ├── ApplicationB.php │ │ ├── ApplicationC.php │ │ ├── ApplicationD.php │ │ ├── ApplicationE.php │ │ ├── ApplicationSimple.php │ │ ├── CloneableInterface.php │ │ ├── FileReference.php │ │ ├── History.php │ │ ├── Job.php │ │ ├── LanguageSkill.php │ │ ├── Note.php │ │ ├── StructuredJobDefinitionTrait.php │ │ └── TextTemplate.php │ ├── Repository │ │ ├── AbstractApplicationRepository.php │ │ ├── AjaxApplicationRepository.php │ │ ├── AnonymizationTrait.php │ │ ├── ApplicationARepository.php │ │ ├── ApplicationBRepository.php │ │ ├── ApplicationCRepository.php │ │ ├── ApplicationDRepository.php │ │ ├── ApplicationERepository.php │ │ ├── ApplicationRepository.php │ │ ├── ApplicationSimpleRepository.php │ │ ├── CountryRepository.php │ │ ├── FileReferenceRepository.php │ │ ├── HistoryRepository.php │ │ ├── JobRepository.php │ │ ├── LanguageRepository.php │ │ ├── LanguageSkillRepository.php │ │ ├── LegacyCountryRepository.php │ │ ├── LegacyLanguageRepository.php │ │ ├── NoteRepository.php │ │ └── TextTemplateRepository.php │ └── Validator │ │ ├── LanguageSkillValidator.php │ │ └── TypoScriptValidator.php ├── Exception.php ├── Hook │ ├── DataHandlerJobGroups.php │ └── FileDumpControllerHook.php ├── Message │ ├── AbstractMessage.php │ ├── AcknowledgeMessage.php │ ├── InviteMessage.php │ ├── MassMessageContainer.php │ ├── MessageFactory.php │ ├── MessageInterface.php │ ├── RejectMessage.php │ ├── ReplyMessage.php │ └── UndefinedMessageException.php ├── Persistence │ ├── Generic │ │ └── QueryFactory.php │ ├── OpenRepositoryInterface.php │ └── Repository.php ├── Property │ └── TypeConverter │ │ ├── ObjectStorageConverter.php │ │ └── UploadedFileReferenceConverter.php ├── Service │ ├── AnonymizationService.php │ ├── AuthenticationService.php │ ├── Cleanup │ │ ├── ApplicationCleanupService.php │ │ └── UserCleanupService.php │ ├── DuplicationService.php │ ├── ExportService.php │ ├── ExtconfService.php │ ├── FluidRenderingService.php │ ├── IntlLocalizationService.php │ ├── MailService.php │ ├── MarkerService.php │ ├── PdfService.php │ ├── StatisticsService.php │ └── TyposcriptService.php ├── TCA │ └── FormHelper.php ├── Traits │ └── StaticCalling.php ├── Userfuncs │ └── LanguageSkill.php ├── ViewHelpers │ ├── Form │ │ ├── CountrySelectViewHelper.php │ │ ├── LanguageSelectViewHelper.php │ │ ├── TranslatableSelectViewHelper.php │ │ └── UploadViewHelper.php │ └── Workflow │ │ └── ApplicationActionsViewHelper.php └── Workflow │ ├── DefaultWorkflowConfiguration.php │ ├── InvalidWorkflowConfigurationException.php │ ├── SimpleWorkflowConfiguration.php │ └── WorkflowManager.php ├── Configuration ├── Backend │ └── AjaxRoutes.php ├── FlexForms │ └── FlexformJobs.xml ├── PageTS │ ├── main.ts │ ├── mod.ts │ └── rte.ts ├── RTE │ └── Templates.yaml ├── TCA │ ├── Overrides │ │ ├── be_groups.php │ │ ├── be_users.php │ │ ├── tt_content.php │ │ └── tx_ats_domain_model_job.php │ ├── tx_ats_domain_model_application.php │ ├── tx_ats_domain_model_history.php │ ├── tx_ats_domain_model_job.php │ ├── tx_ats_domain_model_languageskill.php │ ├── tx_ats_domain_model_note.php │ └── tx_ats_domain_model_texttemplate.php └── TypoScript │ ├── Backend │ ├── anonymization.ts │ ├── cleanup.ts │ ├── constants.ts │ ├── constants_legacy.ts │ ├── setup.ts │ └── setup_legacy.ts │ ├── constants.txt │ └── setup.txt ├── Documentation ├── Configuration │ └── Index.rst ├── Development │ └── Index.rst ├── Images │ ├── Installation │ │ ├── be_groups_location.png │ │ └── example_pagetree.png │ └── Security │ │ └── protected-storage.png ├── Includes.txt ├── Index.rst ├── Installation │ └── Index.rst ├── Introduction │ └── Index.rst ├── Releases │ └── Index.rst ├── Security │ └── Index.rst ├── _make │ └── conf.py └── warnings.txt ├── LICENSE ├── README.md ├── Resources ├── Private │ ├── Language │ │ ├── de.locallang.xlf │ │ ├── de.locallang_db.xlf │ │ ├── de.locallang_mod.xlf │ │ ├── de.locallang_mod_applications.xlf │ │ ├── de.locallang_mod_archive.xlf │ │ ├── de.locallang_mod_notification.xlf │ │ ├── de.locallang_mod_statistics.xlf │ │ ├── locallang.xlf │ │ ├── locallang_db.xlf │ │ ├── locallang_mod.xlf │ │ ├── locallang_mod_applications.xlf │ │ ├── locallang_mod_archive.xlf │ │ ├── locallang_mod_notification.xlf │ │ └── locallang_mod_statistics.xlf │ ├── Layouts │ │ ├── Backend │ │ │ ├── ApplicationSingle.html │ │ │ ├── Backend.html │ │ │ └── List.html │ │ └── Default.html │ ├── Partials │ │ ├── Application │ │ │ ├── Field │ │ │ │ ├── Checkbox.html │ │ │ │ ├── Honeypot.html │ │ │ │ ├── Label.html │ │ │ │ ├── Language.html │ │ │ │ ├── RadioButton.html │ │ │ │ ├── SelectCountry.html │ │ │ │ ├── SelectNationality.html │ │ │ │ ├── SelectTranslated.html │ │ │ │ ├── Selectbox.html │ │ │ │ ├── SubmitButton.html │ │ │ │ ├── SummaryList.html │ │ │ │ ├── SummaryListFiles.html │ │ │ │ ├── SummaryListLanguage.html │ │ │ │ ├── TextField.html │ │ │ │ ├── Textarea.html │ │ │ │ ├── Upload.html │ │ │ │ └── ValidationError.html │ │ │ └── ValidationResults.html │ │ ├── Backend │ │ │ ├── Application │ │ │ │ ├── Field │ │ │ │ │ ├── Checkbox.html │ │ │ │ │ ├── RadioButton.html │ │ │ │ │ ├── SelectCountry.html │ │ │ │ │ ├── SelectNationality.html │ │ │ │ │ ├── SelectTranslated.html │ │ │ │ │ ├── Selectbox.html │ │ │ │ │ ├── SubmitButton.html │ │ │ │ │ ├── SummaryList.html │ │ │ │ │ ├── SummaryListFiles.html │ │ │ │ │ ├── SummaryListLanguage.html │ │ │ │ │ ├── TextField.html │ │ │ │ │ ├── Textarea.html │ │ │ │ │ └── Upload.html │ │ │ │ ├── FilterBar.html │ │ │ │ ├── Form │ │ │ │ │ ├── AdditionalInformation.html │ │ │ │ │ ├── General.html │ │ │ │ │ ├── Introduction.html │ │ │ │ │ ├── Message.html │ │ │ │ │ ├── PersonalData.html │ │ │ │ │ ├── Qualifications.html │ │ │ │ │ ├── Rating.html │ │ │ │ │ ├── StatusChange.html │ │ │ │ │ └── Upload.html │ │ │ │ ├── History │ │ │ │ │ ├── Message │ │ │ │ │ │ └── Fields.html │ │ │ │ │ ├── acknowledge.html │ │ │ │ │ ├── autoAcknowledge.html │ │ │ │ │ ├── backToPerso.html │ │ │ │ │ ├── clone.html │ │ │ │ │ ├── cloned.html │ │ │ │ │ ├── close.html │ │ │ │ │ ├── edit.html │ │ │ │ │ ├── file.html │ │ │ │ │ ├── invite.html │ │ │ │ │ ├── massPoolMoving.html │ │ │ │ │ ├── moveToPool.html │ │ │ │ │ ├── new.html │ │ │ │ │ ├── none.html │ │ │ │ │ ├── note.html │ │ │ │ │ ├── rating.html │ │ │ │ │ ├── ratingPerso.html │ │ │ │ │ ├── reject.html │ │ │ │ │ ├── removeUpload.html │ │ │ │ │ ├── reply.html │ │ │ │ │ └── workflow.html │ │ │ │ ├── ListArchived.html │ │ │ │ ├── ListDeadlineExceeded.html │ │ │ │ ├── ListInProgress.html │ │ │ │ ├── ListNew.html │ │ │ │ ├── ListNotification.html │ │ │ │ ├── ListPool.html │ │ │ │ ├── NoteList.html │ │ │ │ ├── Overview.html │ │ │ │ ├── Table.html │ │ │ │ ├── TableInner.html │ │ │ │ └── ValidationResults.html │ │ │ ├── FlashMessages.html │ │ │ ├── Message │ │ │ │ ├── AcknowledgeMessage.html │ │ │ │ ├── CommonFields.html │ │ │ │ ├── Fields │ │ │ │ │ ├── Date.html │ │ │ │ │ ├── DateTime.html │ │ │ │ │ ├── Textarea.html │ │ │ │ │ ├── Textfield.html │ │ │ │ │ └── Time.html │ │ │ │ ├── InviteMessage.html │ │ │ │ ├── RejectMessage.html │ │ │ │ └── ReplyMessage.html │ │ │ └── SharedApplicationActions │ │ │ │ ├── Clone.html │ │ │ │ ├── Edit.html │ │ │ │ ├── EditStatus.html │ │ │ │ ├── History.html │ │ │ │ ├── Notes.html │ │ │ │ └── Show.html │ │ └── Job │ │ │ ├── Categories.html │ │ │ └── JsonLd.html │ └── Templates │ │ ├── Application │ │ ├── AdditionalData │ │ │ └── EditAdditionalData.html │ │ ├── Form │ │ │ └── Form.html │ │ ├── PersonalData │ │ │ └── EditPersonalData.html │ │ ├── Qualifications │ │ │ └── EditQualifications.html │ │ ├── SimpleForm │ │ │ └── SimpleForm.html │ │ ├── Submit │ │ │ ├── ShowSimpleSummary.html │ │ │ ├── ShowSummary.html │ │ │ └── Submitted.html │ │ └── Upload │ │ │ └── EditUpload.html │ │ ├── Backend │ │ ├── Application │ │ │ ├── Acknowledge.html │ │ │ ├── BackToPerso.html │ │ │ ├── Clone.html │ │ │ ├── Close.html │ │ │ ├── Edit.html │ │ │ ├── EditStatus.html │ │ │ ├── History.html │ │ │ ├── Invite.html │ │ │ ├── List.html │ │ │ ├── ListAll.html │ │ │ ├── ListMine.html │ │ │ ├── New.html │ │ │ ├── Notes.html │ │ │ ├── Rating.html │ │ │ ├── RatingPerso.html │ │ │ ├── Reject.html │ │ │ ├── Reply.html │ │ │ └── Show.html │ │ ├── ArchivedApplication │ │ │ ├── Clone.html │ │ │ ├── Edit.html │ │ │ ├── EditStatus.html │ │ │ ├── History.html │ │ │ ├── ListAll.html │ │ │ ├── ListPool.html │ │ │ ├── MoveToPool.html │ │ │ ├── NewMassPoolMoving.html │ │ │ ├── Notes.html │ │ │ └── Show.html │ │ ├── NotificationApplication │ │ │ ├── Clone.html │ │ │ ├── Edit.html │ │ │ ├── EditStatus.html │ │ │ ├── History.html │ │ │ ├── ListAll.html │ │ │ ├── NewMassNotification.html │ │ │ ├── Notes.html │ │ │ ├── Result.html │ │ │ └── Show.html │ │ └── Statistics │ │ │ ├── Export.html │ │ │ └── Statistics.html │ │ ├── Job │ │ ├── List.html │ │ └── Show.html │ │ ├── Mail │ │ └── Html.html │ │ └── Pdf │ │ ├── Body.html │ │ ├── Footer.html │ │ └── Header.html └── Public │ ├── Css │ ├── backend.css │ └── libs │ │ ├── images │ │ ├── sort_asc.png │ │ ├── sort_asc_disabled.png │ │ ├── sort_both.png │ │ ├── sort_desc.png │ │ └── sort_desc_disabled.png │ │ └── jquery.dataTables.min.css │ ├── Icons │ ├── btn_print.png │ ├── module_applications.svg │ ├── module_archive.svg │ ├── module_massnotifications.svg │ ├── module_newapplication.svg │ ├── module_statistics.svg │ ├── tx_ats_domain_model_job.svg │ └── tx_ats_domain_model_texttemplate.svg │ └── JavaScript │ ├── ApplicationList.js │ ├── ApplicationsModule.js │ ├── LanguageFields.js │ ├── ckeditor │ ├── CHANGES.md │ ├── LICENSE.md │ ├── README.md │ ├── adapters │ │ └── jquery.js │ ├── build-config.js │ ├── ckeditor.js │ ├── config.js │ ├── contents.css │ ├── lang │ │ ├── de.js │ │ └── en.js │ ├── plugins │ │ ├── about │ │ │ └── dialogs │ │ │ │ ├── about.js │ │ │ │ ├── hidpi │ │ │ │ └── logo_ckeditor.png │ │ │ │ └── logo_ckeditor.png │ │ ├── clipboard │ │ │ └── dialogs │ │ │ │ └── paste.js │ │ ├── dialog │ │ │ └── dialogDefinition.js │ │ ├── icons.png │ │ ├── icons_hidpi.png │ │ ├── link │ │ │ ├── dialogs │ │ │ │ ├── anchor.js │ │ │ │ └── link.js │ │ │ └── images │ │ │ │ ├── anchor.png │ │ │ │ └── hidpi │ │ │ │ └── anchor.png │ │ ├── placeholder │ │ │ └── dialogs │ │ │ │ └── placeholder.js │ │ ├── placeholderPresets │ │ │ ├── lang │ │ │ │ ├── de.js │ │ │ │ └── en.js │ │ │ └── plugin.js │ │ └── widget │ │ │ └── images │ │ │ └── handle.png │ ├── skins │ │ └── bootstrapck │ │ │ ├── .temp │ │ │ └── css │ │ │ │ ├── dialog.css │ │ │ │ ├── dialog_ie.css │ │ │ │ ├── dialog_ie7.css │ │ │ │ ├── dialog_ie8.css │ │ │ │ ├── dialog_iequirks.css │ │ │ │ ├── dialog_opera.css │ │ │ │ ├── editor.css │ │ │ │ ├── editor_gecko.css │ │ │ │ ├── editor_ie.css │ │ │ │ ├── editor_ie7.css │ │ │ │ ├── editor_ie8.css │ │ │ │ └── editor_iequirks.css │ │ │ ├── dialog.css │ │ │ ├── dialog_ie.css │ │ │ ├── dialog_ie7.css │ │ │ ├── dialog_ie8.css │ │ │ ├── dialog_iequirks.css │ │ │ ├── dialog_opera.css │ │ │ ├── editor.css │ │ │ ├── editor_gecko.css │ │ │ ├── editor_ie.css │ │ │ ├── editor_ie7.css │ │ │ ├── editor_ie8.css │ │ │ ├── editor_iequirks.css │ │ │ ├── icons.png │ │ │ ├── icons_hidpi.png │ │ │ ├── images │ │ │ ├── arrow.png │ │ │ ├── close.png │ │ │ ├── hidpi │ │ │ │ ├── close.png │ │ │ │ ├── lock-open.png │ │ │ │ ├── lock.png │ │ │ │ └── refresh.png │ │ │ ├── lock-open.png │ │ │ ├── lock.png │ │ │ └── refresh.png │ │ │ ├── readme.md │ │ │ ├── sample │ │ │ ├── bootstrapck-sample.html │ │ │ ├── css │ │ │ │ └── bootstrapck-sample.css │ │ │ └── js │ │ │ │ ├── analytics.js │ │ │ │ └── jquery-1.11.0.min.js │ │ │ └── scss │ │ │ ├── browser-specific │ │ │ ├── gecko │ │ │ │ └── editor_gecko.scss │ │ │ ├── ie │ │ │ │ ├── dialog_ie.scss │ │ │ │ └── editor_ie.scss │ │ │ ├── ie7 │ │ │ │ ├── dialog_ie7.scss │ │ │ │ └── editor_ie7.scss │ │ │ ├── ie8 │ │ │ │ ├── dialog_ie8.scss │ │ │ │ └── editor_ie8.scss │ │ │ ├── iequirks │ │ │ │ ├── dialog_iequirks.scss │ │ │ │ └── editor_iequirks.scss │ │ │ └── opera │ │ │ │ └── dialog_opera.scss │ │ │ ├── components │ │ │ ├── _colorpanel.scss │ │ │ ├── _elementspath.scss │ │ │ ├── _mainui.scss │ │ │ ├── _menu.scss │ │ │ ├── _panel.scss │ │ │ ├── _presets.scss │ │ │ ├── _reset.scss │ │ │ ├── _richcombo.scss │ │ │ ├── _toolbar.scss │ │ │ └── editor.scss │ │ │ ├── config │ │ │ ├── _colors.scss │ │ │ ├── _config.scss │ │ │ └── _defaults.scss │ │ │ └── dialog │ │ │ └── dialog.scss │ └── styles.js │ └── main.js ├── composer.json ├── ext_conf_template.txt ├── ext_emconf.php ├── ext_icon.png ├── ext_localconf.php ├── ext_tables.php └── ext_tables.sql /Classes/Application/ApplicationRating.php: -------------------------------------------------------------------------------- 1 | setValue(static::__default); 32 | } 33 | } 34 | 35 | /** 36 | * Overrides the parent method to set enum values by config 37 | * 38 | * @throws Exception\InvalidEnumerationValueException 39 | * @throws Exception\InvalidEnumerationDefinitionException 40 | * @internal param string $class 41 | */ 42 | protected static function loadValues() 43 | { 44 | static::$enumConstants[get_called_class()] = [ 45 | // Ensure this value is available as fallback in every context 46 | '__default' => 0, 47 | ]; 48 | $ratingOptions = TyposcriptService::getInstance()->getSettings()['ratingOptions'] ?: []; 49 | 50 | foreach ($ratingOptions as $value => $option) { 51 | static::$enumConstants[get_called_class()][$option['name']] = $value; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Classes/Controller/Application/AdditionalDataController.php: -------------------------------------------------------------------------------- 1 | repository = $repository; 27 | } 28 | 29 | /** 30 | * @param ApplicationD $application 31 | * @TYPO3\CMS\Extbase\Annotation\IgnoreValidation("application") 32 | * @ignorevalidation $application 33 | * @return void 34 | */ 35 | public function editAdditionalDataAction(ApplicationD $application) 36 | { 37 | 38 | $this->view->assign("application", $application); 39 | } 40 | 41 | /** 42 | * 43 | * @param ApplicationD $application 44 | * @validate $application \PAGEmachine\Ats\Domain\Validator\TypoScriptValidator 45 | * @return void 46 | */ 47 | public function updateAdditionalDataAction(ApplicationD $application) 48 | { 49 | 50 | $this->repository->addOrUpdate($application); 51 | $this->forward("editUpload", "Application\\Upload", null, ['application' => $application->getUid()]); 52 | } 53 | } 54 | -------------------------------------------------------------------------------- /Classes/Controller/Application/QualificationsController.php: -------------------------------------------------------------------------------- 1 | repository = $repository; 27 | } 28 | 29 | /** 30 | * @param ApplicationC $application 31 | * @TYPO3\CMS\Extbase\Annotation\IgnoreValidation("application") 32 | * @ignorevalidation $application 33 | * @return void 34 | */ 35 | public function editQualificationsAction(ApplicationC $application) 36 | { 37 | $this->view->assign("application", $application); 38 | } 39 | 40 | /** 41 | * 42 | * @param ApplicationC $application 43 | * @validate $application \PAGEmachine\Ats\Domain\Validator\TypoScriptValidator 44 | * @return void 45 | */ 46 | public function updateQualificationsAction(ApplicationC $application) 47 | { 48 | 49 | $this->repository->addOrUpdate($application); 50 | $this->forward("editAdditionalData", "Application\\AdditionalData", null, ['application' => $application->getUid()]); 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Classes/Controller/Backend/AjaxApplicationController.php: -------------------------------------------------------------------------------- 1 | getParsedBody(); 22 | 23 | $query = new ApplicationQuery($body['query']); 24 | 25 | $repository = GeneralUtility::makeInstance(AjaxApplicationRepository::class); 26 | 27 | $data = [ 28 | 'draw' => (int)$body['draw'], 29 | 'recordsFiltered' => $repository->getTotalResultsOfQuery($query), 30 | 'data' => $repository->findWithQuery($query), 31 | ]; 32 | 33 | $response->getBody()->write(json_encode($data)); 34 | return $response; 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /Classes/Controller/JobController.php: -------------------------------------------------------------------------------- 1 | jobRepository = $jobRepository; 29 | } 30 | 31 | /** 32 | * 33 | * @return void 34 | */ 35 | public function initializeAction() 36 | { 37 | parent::initializeAction(); 38 | 39 | $this->settings = TyposcriptService::getInstance()->mergeFlexFormAndTypoScriptSettings($this->settings); 40 | } 41 | 42 | /** 43 | * action list 44 | * 45 | * @return void 46 | */ 47 | public function listAction() 48 | { 49 | $jobs = $this->jobRepository->findAll(); 50 | $this->view->assign('jobs', $jobs); 51 | } 52 | 53 | /** 54 | * action show 55 | * 56 | * @param \PAGEmachine\Ats\Domain\Model\Job $job 57 | * @return void 58 | */ 59 | public function showAction(Job $job) 60 | { 61 | $this->view->assign('job', $job); 62 | } 63 | } 64 | -------------------------------------------------------------------------------- /Classes/Domain/Model/ApplicationA.php: -------------------------------------------------------------------------------- 1 | user; 29 | } 30 | 31 | /** 32 | * @param TYPO3\CMS\Extbase\Domain\Model\FrontendUser $user 33 | * @return void 34 | */ 35 | public function setUser(FrontendUser $user) 36 | { 37 | $this->user = $user; 38 | } 39 | 40 | 41 | /** 42 | * @var PAGEmachine\Ats\Domain\Model\Job $job 43 | */ 44 | protected $job; 45 | 46 | /** 47 | * @return PAGEmachine\Ats\Domain\Model\Job 48 | */ 49 | public function getJob() 50 | { 51 | return $this->job; 52 | } 53 | 54 | /** 55 | * @param PAGEmachine\Ats\Domain\Model\Job $job 56 | * @return void 57 | */ 58 | public function setJob(Job $job) 59 | { 60 | $this->job = $job; 61 | } 62 | 63 | /** 64 | * @var bool $privacyPolicy 65 | */ 66 | protected $privacyPolicy; 67 | 68 | /** 69 | * @return bool 70 | */ 71 | public function getPrivacyPolicy() 72 | { 73 | return $this->privacyPolicy; 74 | } 75 | 76 | /** 77 | * @param bool $privacyPolicy 78 | * @return void 79 | */ 80 | public function setPrivacyPolicy($privacyPolicy) 81 | { 82 | $this->privacyPolicy = $privacyPolicy; 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /Classes/Domain/Model/ApplicationD.php: -------------------------------------------------------------------------------- 1 | comment; 26 | } 27 | 28 | /** 29 | * @param string $comment 30 | * @return void 31 | */ 32 | public function setComment($comment) 33 | { 34 | $this->comment = $comment; 35 | } 36 | 37 | 38 | /** 39 | * @var string $referrer 40 | */ 41 | protected $referrer; 42 | 43 | /** 44 | * @return string 45 | */ 46 | public function getReferrer() 47 | { 48 | return $this->referrer; 49 | } 50 | 51 | /** 52 | * @param string $referrer 53 | * @return void 54 | */ 55 | public function setReferrer($referrer) 56 | { 57 | $this->referrer = $referrer; 58 | } 59 | 60 | 61 | /** 62 | * @var int $forwardToDepartments 63 | */ 64 | protected $forwardToDepartments; 65 | 66 | /** 67 | * @return int 68 | */ 69 | public function getForwardToDepartments() 70 | { 71 | return $this->forwardToDepartments; 72 | } 73 | 74 | /** 75 | * @param int $forwardToDepartments 76 | * @return void 77 | */ 78 | public function setForwardToDepartments($forwardToDepartments) 79 | { 80 | $this->forwardToDepartments = $forwardToDepartments; 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /Classes/Domain/Model/ApplicationE.php: -------------------------------------------------------------------------------- 1 | files = new ObjectStorage(); 24 | } 25 | 26 | /** 27 | * @var \TYPO3\CMS\Extbase\Persistence\ObjectStorage 28 | * @TYPO3\CMS\Extbase\Annotation\ORM\Lazy 29 | * @lazy 30 | */ 31 | protected $files; 32 | 33 | /** 34 | * @return \TYPO3\CMS\Extbase\Persistence\ObjectStorage 35 | */ 36 | public function getFiles() 37 | { 38 | return $this->files; 39 | } 40 | 41 | /** 42 | * @param \TYPO3\CMS\Extbase\Persistence\ObjectStorage $files 43 | * @return void 44 | */ 45 | public function setFiles(\TYPO3\CMS\Extbase\Persistence\ObjectStorage $files) 46 | { 47 | $this->files = $files; 48 | } 49 | 50 | /** 51 | * @param PAGEmachine\Ats\Domain\Model\FileReference $file 52 | * @return void 53 | */ 54 | public function addFile(FileReference $file) 55 | { 56 | $this->files->attach($file); 57 | } 58 | 59 | /** 60 | * @param PAGEmachine\Ats\Domain\Model\FileReference $file 61 | * @return void 62 | */ 63 | public function removeFile(FileReference $file) 64 | { 65 | $this->files->detach($file); 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /Classes/Domain/Model/ApplicationSimple.php: -------------------------------------------------------------------------------- 1 | texttemplate; 42 | } 43 | 44 | /** 45 | * @param string $textTemplate 46 | * @return void 47 | */ 48 | public function setTexttemplate($texttemplate) 49 | { 50 | $this->texttemplate = $texttemplate; 51 | } 52 | 53 | /** 54 | * @return int 55 | */ 56 | public function getType() 57 | { 58 | return $this->type; 59 | } 60 | 61 | /** 62 | * @param int $type 63 | * @return void 64 | */ 65 | public function setType($type) 66 | { 67 | $this->type = $type; 68 | } 69 | 70 | /** 71 | * @return string 72 | */ 73 | public function getTitle() 74 | { 75 | return $this->title; 76 | } 77 | 78 | /** 79 | * @param string $title 80 | * @return void 81 | */ 82 | public function setTitle($title) 83 | { 84 | $this->title = $title; 85 | } 86 | 87 | /** 88 | * @return string 89 | */ 90 | public function getSubject() 91 | { 92 | return $this->subject; 93 | } 94 | 95 | /** 96 | * @param string $subject 97 | * @return void 98 | */ 99 | public function setSubject($subject) 100 | { 101 | $this->subject = $subject; 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /Classes/Domain/Repository/ApplicationARepository.php: -------------------------------------------------------------------------------- 1 | QueryInterface::ORDER_DESCENDING, 19 | ]; 20 | } 21 | -------------------------------------------------------------------------------- /Classes/Domain/Repository/LanguageSkillRepository.php: -------------------------------------------------------------------------------- 1 | exec_SELECTgetRows( 19 | implode(',', ['uid', 'lg_iso_2', 'lg_name_en', 'lg_name_local']), 20 | 'static_languages', 21 | 'deleted = 0' 22 | ); 23 | 24 | $localizationService = IntlLocalizationService::getInstance(); 25 | 26 | foreach ($languages as $key => $language) { 27 | $languages[$key]['localizedName'] = $localizationService->getLocalizedLanguageName($language['lg_iso_2']) ?: $language['lg_name_local']; 28 | } 29 | 30 | return $languages; 31 | } 32 | 33 | /** 34 | * Finds languages by their respective uids 35 | * 36 | * @param array $uids 37 | * @return array $languages 38 | */ 39 | public function findLanguagesByUids(array $uids = []) 40 | { 41 | if (empty($uids)) { 42 | return []; 43 | } 44 | 45 | //enforce integer values for uids 46 | $uids = array_map(function ($value) { 47 | return (int)$value; 48 | }); 49 | 50 | $languages = $GLOBALS['TYPO3_DB']->exec_SELECTgetRows( 51 | implode(',', ['uid', 'lg_iso_2', 'lg_name_en', 'lg_name_local']), 52 | 'static_languages', 53 | 'deleted = 0 AND uid IN(' . implode(',', $uids) . ')' 54 | ); 55 | 56 | $localizationService = IntlLocalizationService::getInstance(); 57 | 58 | foreach ($languages as $key => $language) { 59 | $languages[$key]['localizedName'] = $localizationService->getLocalizedLanguageName($language['lg_iso_2']) ?: $language['lg_name_local']; 60 | } 61 | 62 | return $languages; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /Classes/Domain/Repository/NoteRepository.php: -------------------------------------------------------------------------------- 1 | QueryInterface::ORDER_DESCENDING, 18 | ]; 19 | } 20 | -------------------------------------------------------------------------------- /Classes/Domain/Repository/TextTemplateRepository.php: -------------------------------------------------------------------------------- 1 | objectManager->get(Typo3QuerySettings::class); 25 | $querySettings->setRespectStoragePage(false); 26 | 27 | $this->setDefaultQuerySettings($querySettings); 28 | } 29 | 30 | /** 31 | * Returns dropdown options for given message type 32 | * 33 | * @param int $type 34 | * @return array 35 | */ 36 | public function getDropdownOptionsForType($type) 37 | { 38 | $textTemplates = $this->findByType($type); 39 | 40 | $dropdown = []; 41 | 42 | if ($textTemplates->count() > 0) { 43 | foreach ($textTemplates as $template) { 44 | $dropdown[$template->getUid()] = $template->getTitle(); 45 | } 46 | } 47 | 48 | return $dropdown; 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Classes/Domain/Validator/LanguageSkillValidator.php: -------------------------------------------------------------------------------- 1 | getLanguage()) && empty($languageSkill->getTextLanguage())) { 22 | $this->result->forProperty('language')->addError(new Error('You must enter a language, either via selection or input.', 1522232293)); 23 | $valid = false; 24 | } 25 | 26 | //Level must be set 27 | if ($languageSkill->getLevel() === null) { 28 | $this->result->forProperty('level')->addError(new Error('You must enter a skill level', 1522232270)); 29 | $valid = false; 30 | } 31 | 32 | return $valid; 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Classes/Exception.php: -------------------------------------------------------------------------------- 1 | getAutoAcknowledgeTemplate(); 56 | 57 | if (array_key_exists($templateUid, $this->getTextTemplateDropdownOptions())) { 58 | $this->setTextTemplate($templateUid); 59 | $this->applyTextTemplate(); 60 | return true; 61 | } 62 | return false; 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /Classes/Message/RejectMessage.php: -------------------------------------------------------------------------------- 1 | callStatic(parent::class, 'create', $className); 32 | 33 | $repository = null; 34 | 35 | try { 36 | $repositoryClassName = ClassNamingUtility::translateModelNameToRepositoryName($className); 37 | $repository = $this->objectManager->get($repositoryClassName); 38 | } catch (UnknownObjectException $e) { 39 | // Silently ignore 40 | } 41 | 42 | // If there is an existing repository, check if it provides the necessary getters for settings and orderings (via interface) 43 | if ($repository !== null && ($repository instanceof OpenRepositoryInterface)) { 44 | //Set default query settings 45 | if ($repository->getDefaultQuerySettings() != null) { 46 | $query->setQuerySettings($repository->getDefaultQuerySettings()); 47 | } 48 | 49 | //Set orderings 50 | if ($repository->getDefaultOrderings() != []) { 51 | $query->setOrderings($repository->getDefaultOrderings()); 52 | } 53 | } 54 | 55 | return $query; 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Classes/Persistence/OpenRepositoryInterface.php: -------------------------------------------------------------------------------- 1 | defaultOrderings; 20 | } 21 | 22 | /** 23 | * Gets the default query settings of this repository 24 | * 25 | * @return QuerySettingsInterface|null 26 | * @codeCoverageIgnore 27 | */ 28 | public function getDefaultQuerySettings() 29 | { 30 | return $this->defaultQuerySettings; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /Classes/Property/TypeConverter/ObjectStorageConverter.php: -------------------------------------------------------------------------------- 1 | $propertyValue) { 35 | if ($this->isUploadType($propertyValue)) { 36 | if ($propertyValue['error'] !== \UPLOAD_ERR_NO_FILE || isset($propertyValue['submittedFile']['resourcePointer'])) { 37 | $propertiesToConvert[$propertyName] = $propertyValue; 38 | } 39 | } else { 40 | $propertiesToConvert[$propertyName] = $propertyValue; 41 | } 42 | } 43 | } 44 | 45 | 46 | 47 | return $propertiesToConvert; 48 | } 49 | 50 | /** 51 | * Check if this is an upload type 52 | * 53 | * @param mixed $propertyValue 54 | * @return bool 55 | */ 56 | protected function isUploadType($propertyValue) 57 | { 58 | return is_array($propertyValue) && isset($propertyValue['tmp_name']) && isset($propertyValue['error']); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Classes/Service/Cleanup/UserCleanupService.php: -------------------------------------------------------------------------------- 1 | sub( 32 | \DateInterval::createFromDateString($loginOlderThan) 33 | ); 34 | 35 | $queryBuilder = GeneralUtility::makeInstance(ConnectionPool::class)->getQueryBuilderForTable('fe_users'); 36 | 37 | // Remove hidden and deleted records as well 38 | $queryBuilder->getRestrictions()->removeAll(); 39 | 40 | /** 41 | * Deletes all users which did not login in the specified period 42 | */ 43 | $affectedRows = $queryBuilder 44 | ->delete('fe_users') 45 | ->where( 46 | $queryBuilder->expr()->andX( 47 | $queryBuilder->expr()->lt('lastlogin', $threshold->getTimestamp()), 48 | $queryBuilder->expr()->inSet('usergroup', (int)$userGroup) 49 | ) 50 | ) 51 | ->execute(); 52 | 53 | return $affectedRows; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Classes/Traits/StaticCalling.php: -------------------------------------------------------------------------------- 1 | get(\PAGEmachine\Ats\Domain\Repository\LanguageSkillRepository::class); 19 | $language = $languageSkillRepository->findByUid($parameters['row']['uid']); 20 | $parameters['title'] = $language->getLocalizedName(); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Classes/ViewHelpers/Form/LanguageSelectViewHelper.php: -------------------------------------------------------------------------------- 1 | registerArgument('languageUids', 'string', 'Comma-separated List of languages to show. If not set, all languages are shown.', false, null); 31 | $this->overrideArgument('optionLabelField', 'string', 'Option label', false, 'localizedName'); 32 | $this->overrideArgument('optionValueField', 'string', 'Option value', false, 'uid'); 33 | } 34 | 35 | /** 36 | * @return void 37 | */ 38 | public function initialize() 39 | { 40 | parent::initialize(); 41 | 42 | /** @var array */ 43 | $languages = []; 44 | 45 | if ($this->arguments['languageUids'] != null && $this->arguments['languageUids'] != "") { 46 | $languageUids = explode(",", $this->arguments['languageUids']); 47 | $languages = $this->languageRepository->findLanguagesByUids($languageUids); 48 | } else { 49 | $languages = $this->languageRepository->findAll(); 50 | } 51 | 52 | $this->arguments['options'] = IntlLocalizationService::getInstance()->orderItemsByLabel($languages, $this->arguments['optionLabelField']); 53 | ; 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /Classes/Workflow/InvalidWorkflowConfigurationException.php: -------------------------------------------------------------------------------- 1 | [ 5 | 'path' => '/ats/applications', 6 | 'target' => \PAGEmachine\Ats\Controller\Backend\AjaxApplicationController::class . '::getApplications' 7 | ], 8 | ]; 9 | -------------------------------------------------------------------------------- /Configuration/PageTS/main.ts: -------------------------------------------------------------------------------- 1 | 2 | 3 | -------------------------------------------------------------------------------- /Configuration/PageTS/mod.ts: -------------------------------------------------------------------------------- 1 | mod { 2 | wizards.newContentElement.wizardItems.ats { 3 | header = Applicant Tracking System 4 | show = * 5 | 6 | elements { 7 | joblist { 8 | icon = ../typo3conf/ext/ats/ext_icon.png 9 | title = LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:plugin.jobs 10 | description = LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:plugin.jobs.description 11 | 12 | tt_content_defValues { 13 | CType = list 14 | list_type = ats_jobs 15 | } 16 | } 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /Configuration/PageTS/rte.ts: -------------------------------------------------------------------------------- 1 | RTE.config.tx_ats_domain_model_texttemplate.texttemplate.preset = ats_templates 2 | -------------------------------------------------------------------------------- /Configuration/RTE/Templates.yaml: -------------------------------------------------------------------------------- 1 | imports: 2 | - { resource: "EXT:rte_ckeditor/Configuration/RTE/Processing.yaml" } 3 | - { resource: "EXT:rte_ckeditor/Configuration/RTE/Editor/Base.yaml" } 4 | editor: 5 | config: 6 | extraPlugins: 7 | - placeholder 8 | externalPlugins: 9 | placeholderPresets: 10 | resource: "EXT:ats/Resources/Public/JavaScript/ckeditor/plugins/placeholderPresets/plugin.js" 11 | -------------------------------------------------------------------------------- /Configuration/TCA/Overrides/be_groups.php: -------------------------------------------------------------------------------- 1 | array ( 7 | 'exclude' => 0, 8 | 'label' => 'LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:be_groups.tx_ats_location', 9 | 'config' => array ( 10 | 'type' => 'radio', 11 | 'items' => array ( 12 | array('LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:be_groups.tx_ats_location.I.none', ''), 13 | array('LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:be_groups.tx_ats_location.I.0', 'Zentrale'), 14 | array('LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:be_groups.tx_ats_location.I.1', 'Niederlassung'), 15 | ), 16 | ) 17 | ) 18 | )); 19 | 20 | \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( 21 | 'be_groups', 22 | '--div--;LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:be_groups.tx_ats, tx_ats_location', 23 | '', 24 | 'after:TSconfig' 25 | ); 26 | -------------------------------------------------------------------------------- /Configuration/TCA/Overrides/be_users.php: -------------------------------------------------------------------------------- 1 | [ 7 | 'exclude' => 0, 8 | 'label' => 'LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:be_users.tx_ats_email_signature', 9 | 'config' => [ 10 | 'type' => 'text', 11 | 'size' => 30, 12 | 'enableRichtext' => true, 13 | ] 14 | ], 15 | 'tx_ats_pdf_signature' => [ 16 | 'exclude' => 0, 17 | 'label' => 'LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:be_users.tx_ats_pdf_signature', 18 | 'config' => [ 19 | 'type' => 'text', 20 | 'size' => 30, 21 | 'enableRichtext' => true, 22 | ] 23 | ], 24 | 'tx_ats_contact_print' => [ 25 | 'exclude' => 0, 26 | 'label' => 'LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:be_users.tx_ats_contact_print', 27 | 'config' => [ 28 | 'type' => 'text', 29 | 'size' => 30, 30 | ] 31 | ], 32 | ]); 33 | 34 | \TYPO3\CMS\Core\Utility\ExtensionManagementUtility::addToAllTCAtypes( 35 | 'be_users', 36 | '--div--;LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:be_groups.tx_ats,tx_ats_email_signature, tx_ats_pdf_signature, tx_ats_contact_print', 37 | '', 38 | 'after:endtime' 39 | ); 40 | -------------------------------------------------------------------------------- /Configuration/TCA/Overrides/tt_content.php: -------------------------------------------------------------------------------- 1 | [ 4 | 'title' => 'LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:tx_ats_domain_model_history', 5 | 'label' => 'uid', 6 | 'tstamp' => 'tstamp', 7 | 'crdate' => 'crdate', 8 | 'cruser_id' => 'cruser_id', 9 | 'dividers2tabs' => TRUE, 10 | 'delete' => 'deleted', 11 | 'searchFields' => '', 12 | 'iconfile' => 'EXT:ats/Resources/Public/Icons/tx_ats_domain_model_history.gif', 13 | 'hideTable' => 1, 14 | ], 15 | 'interface' => [ 16 | 'showRecordFieldList' => '' 17 | ], 18 | 'types' => [ 19 | '1' => ['showitem' => 20 | ''], 21 | ], 22 | 'palettes' => [ 23 | ], 24 | 'columns' => [ 25 | 'application' => [ 26 | 'config' => [ 27 | 'type' => 'select', 28 | 'renderType' => 'selectMultipleSideBySide', 29 | 'foreign_table' => 'tx_ats_domain_model_application' 30 | ] 31 | ], 32 | 'subject' => [ 33 | 'config' => [ 34 | 'type' => 'input' 35 | ] 36 | ], 37 | 'details' => [ 38 | 'config' => [ 39 | 'type' => 'input' 40 | ] 41 | ], 42 | 'history_data' => [ 43 | 'config' => [ 44 | 'type' => 'input' 45 | ] 46 | ], 47 | 'user' => [ 48 | 'config' => [ 49 | 'type' => 'input' 50 | ] 51 | ], 52 | ] 53 | ]; 54 | -------------------------------------------------------------------------------- /Configuration/TCA/tx_ats_domain_model_note.php: -------------------------------------------------------------------------------- 1 | [ 4 | 'title' => 'LLL:EXT:ats/Resources/Private/Language/locallang_db.xlf:tx_ats_domain_model_note', 5 | 'label' => 'uid', 6 | 'tstamp' => 'tstamp', 7 | 'crdate' => 'crdate', 8 | 'cruser_id' => 'cruser_id', 9 | 'dividers2tabs' => TRUE, 10 | 'versioningWS' => 0, 11 | 'hideTable' => 1, 12 | 'delete' => 'deleted', 13 | 'enablecolumns' => [ 14 | 'disabled' => 'hidden' 15 | ], 16 | 'searchFields' => '', 17 | 'iconfile' => 'EXT:ats/Resources/Public/Icons/tx_ats_domain_model_note.gif' 18 | ], 19 | 'interface' => [ 20 | 'showRecordFieldList' => '' 21 | ], 22 | 'types' => [ 23 | '1' => ['showitem' => 24 | ''], 25 | ], 26 | 'palettes' => [ 27 | ], 28 | 'columns' => [ 29 | 'application' => [ 30 | 'config' => [ 31 | 'type' => 'select', 32 | 'renderType' => 'selectMultipleSideBySide', 33 | 'foreign_table' => 'tx_ats_domain_model_application' 34 | ] 35 | ], 36 | 'user' => [ 37 | 'config' => [ 38 | 'type' => 'passthrough', 39 | 'foreign_table' => 'be_users' 40 | ] 41 | ], 42 | 'subject' => [ 43 | 'config' => [ 44 | 'type' => 'passthrough' 45 | ] 46 | ], 47 | 'details' => [ 48 | 'config' => [ 49 | 'type' => 'passthrough' 50 | ] 51 | ], 52 | 'is_internal' => [ 53 | 'config' => [ 54 | 'type' => 'passthrough' 55 | ] 56 | ] 57 | ] 58 | ]; 59 | -------------------------------------------------------------------------------- /Configuration/TypoScript/Backend/cleanup.ts: -------------------------------------------------------------------------------- 1 | module.tx_ats.settings.cleanup { 2 | unfinishedApplicationsLifetime = 30 days 3 | inactiveUsersLifetime = 2 years 4 | } 5 | -------------------------------------------------------------------------------- /Configuration/TypoScript/Backend/constants.ts: -------------------------------------------------------------------------------- 1 | module.tx_ats { 2 | view { 3 | # cat=module.tx_ats/file; type=string; label=Path to template root (BE) 4 | templateRootPath = EXT:ats/Resources/Private/Templates/ 5 | # cat=module.tx_ats/file; type=string; label=Path to template partials (BE) 6 | partialRootPath = EXT:ats/Resources/Private/Partials/ 7 | # cat=module.tx_ats/file; type=string; label=Path to template layouts (BE) 8 | layoutRootPath = EXT:ats/Resources/Private/Layouts/ 9 | } 10 | persistence { 11 | # cat=module.tx_ats//a; type=string; label=Default storage PID 12 | storagePid = 13 | } 14 | } 15 | -------------------------------------------------------------------------------- /Configuration/TypoScript/Backend/constants_legacy.ts: -------------------------------------------------------------------------------- 1 | 2 | plugin.tx_ats { 3 | view { 4 | # cat=plugin.tx_ats/file; type=string; label=Path to template root (FE) 5 | templateRootPath = EXT:ats/Resources/Private/Templates/ 6 | # cat=plugin.tx_ats/file; type=string; label=Path to template partials (FE) 7 | partialRootPath = EXT:ats/Resources/Private/Partials/ 8 | # cat=plugin.tx_ats/file; type=string; label=Path to template layouts (FE) 9 | layoutRootPath = EXT:ats/Resources/Private/Layouts/ 10 | } 11 | persistence { 12 | # cat=plugin.tx_ats//a; type=string; label=Default storage PID 13 | storagePid = 14 | } 15 | settings { 16 | # cat=plugin.tx_ats//a; type=boolean; label=Include jQuery 17 | includeJQuery = 18 | # cat=plugin.tx_ats//a; type=string; label=Login page to redirect to when no login is active 19 | loginPage = 20 | # cat=plugin.tx_ats//a; type=string; label=FE User group that has access 21 | feUserGroup = 22 | # cat=plugin.tx_ats//a; type=string; label=Allowed languages in language skill dropdown 23 | allowedStaticLanguages = 24 | # cat=plugin.tx_ats/pages; type=string; label=Privacy Policy page 25 | policyPage = 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Documentation/Development/Index.rst: -------------------------------------------------------------------------------- 1 | .. ================================================== 2 | .. FOR YOUR INFORMATION 3 | .. -------------------------------------------------- 4 | .. -*- coding: utf-8 -*- with BOM. 5 | 6 | .. include:: ../Includes.txt 7 | 8 | 9 | .. _development-manual: 10 | 11 | Development 12 | =========== 13 | 14 | .. only:: html 15 | 16 | This chapter provides information for developers (signals, extendable features etc.) 17 | 18 | 19 | Signals 20 | ------- 21 | 22 | The following signals are provided so you can extend ATS behaviour. Signals are still WIP and added as we need them for our projects. 23 | Need a signal somewhere in the code? Feel free to contact us. 24 | 25 | PAGEmachine\Ats\Message\MessageFactory: "afterMessageCreated" 26 | ************************************************************* 27 | 28 | This signal allows for manipulation of mail messages before they are passed to the backend forms ("Invite", "Acknowledge"...). You can use it to manipulate messages and set default values, for example the CC and BCC recipients. 29 | -------------------------------------------------------------------------------- /Documentation/Images/Installation/be_groups_location.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Documentation/Images/Installation/be_groups_location.png -------------------------------------------------------------------------------- /Documentation/Images/Installation/example_pagetree.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Documentation/Images/Installation/example_pagetree.png -------------------------------------------------------------------------------- /Documentation/Images/Security/protected-storage.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Documentation/Images/Security/protected-storage.png -------------------------------------------------------------------------------- /Documentation/Includes.txt: -------------------------------------------------------------------------------- 1 | .. ================================================== 2 | .. FOR YOUR INFORMATION 3 | .. -------------------------------------------------- 4 | .. -*- coding: utf-8 -*- with BOM. 5 | 6 | .. This is 'Includes.txt'. It is included at the very top of each and 7 | every ReST source file in this documentation project (= manual). 8 | 9 | 10 | .. ================================================== 11 | .. DEFINE SOME TEXT ROLES 12 | .. -------------------------------------------------- 13 | 14 | .. role:: typoscript(code) 15 | 16 | .. role:: ts(typoscript) 17 | :class: typoscript 18 | 19 | .. role:: php(code) 20 | :language: php 21 | 22 | .. highlight:: php 23 | -------------------------------------------------------------------------------- /Documentation/Index.rst: -------------------------------------------------------------------------------- 1 | .. ================================================== 2 | .. FOR YOUR INFORMATION 3 | .. -------------------------------------------------- 4 | .. -*- coding: utf-8 -*- with BOM. 5 | 6 | .. include:: Includes.txt 7 | 8 | 9 | .. _start: 10 | 11 | ================================================ 12 | ATS - Application Tracking System 13 | ================================================ 14 | 15 | .. only:: html 16 | 17 | :Classification: 18 | ats 19 | 20 | :Version: 21 | |release| 22 | 23 | :Language: 24 | en 25 | 26 | :Description: 27 | Manual covering TYPO3 Extension ats. 28 | ats is a complete Enterprise Applicant Tracking System. 29 | The ATS realizes Job Offers, Application Forms with login and the complete workflow for matching applicants to jobs. 30 | 31 | :Keywords: 32 | ats,applicant tracking system,Bewerbermangagementsystem,BMS,documentation 33 | 34 | :Copyright: 35 | 2017-2018 36 | 37 | :Author: 38 | Saskia Schreiber, Stefan Schuett 39 | 40 | :Email: 41 | sschreiber@pagemachine.de, sschuett@pagemachine.de 42 | 43 | :License: 44 | This document is published under the Open Publication License 45 | available from http://www.opencontent.org/openpub/ 46 | 47 | :Rendered: 48 | |today| 49 | 50 | The content of this document is related to TYPO3, 51 | a GNU/GPL CMS/Framework available from `www.typo3.org `__. 52 | 53 | 54 | 55 | **Table of Contents** 56 | 57 | .. toctree:: 58 | :maxdepth: 3 59 | :titlesonly: 60 | 61 | Introduction/Index 62 | Installation/Index 63 | Configuration/Index 64 | Security/Index 65 | Development/Index 66 | Releases/Index 67 | 68 | -------------------------------------------------------------------------------- /Documentation/Releases/Index.rst: -------------------------------------------------------------------------------- 1 | .. ================================================== 2 | .. FOR YOUR INFORMATION 3 | .. -------------------------------------------------- 4 | .. -*- coding: utf-8 -*- with BOM. 5 | 6 | .. include:: ../Includes.txt 7 | 8 | 9 | .. _releases-manual: 10 | 11 | Releases 12 | ======== 13 | 14 | 2.0.0 15 | ------- 16 | 17 | ------- 18 | Breaking: Extconf department job configuration format change 19 | ------- 20 | 21 | The configuration for the job department now has to be formated as array instead of a string. 22 | 23 | .. code-block:: php 24 | 25 | $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['ats']['job']['roles'] = [ 26 | 'department' => ["Abt", "Ausbilder", "Ausbildung", "FB"] 27 | ]; 28 | 29 | Previously the array (for the same case) looked like: 30 | 31 | .. code-block:: php 32 | 33 | $GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['ats']['job']['roles'] = [ 34 | 'department' => '"Abt", "Ausbilder", "Ausbildung", "FB"' 35 | ]; 36 | 37 | -------------------------------------------------------------------------------- /Documentation/warnings.txt: -------------------------------------------------------------------------------- 1 | /var/www/web/typo3conf/ext/ats/Documentation/Index.rst:57: WARNING: toctree contains reference to nonexisting document u' :maxdepth: 3' 2 | /var/www/web/typo3conf/ext/ats/Documentation/Index.rst:57: WARNING: toctree contains reference to nonexisting document u' :titlesonly:' 3 | /var/www/web/typo3conf/ext/ats/Documentation/Index.rst:57: WARNING: toctree contains reference to nonexisting document u'Developer/Index' 4 | /var/www/web/typo3conf/ext/ats/Documentation/Index.rst:57: WARNING: toctree contains reference to nonexisting document u'KnownProblems/Index' 5 | /var/www/web/typo3conf/ext/ats/Documentation/Index.rst:57: WARNING: toctree contains reference to nonexisting document u'ToDoList/Index' 6 | /var/www/web/typo3conf/ext/ats/Documentation/Index.rst:57: WARNING: toctree contains reference to nonexisting document u'ChangeLog/Index' 7 | /var/www/web/typo3conf/ext/ats/Documentation/Index.rst:57: WARNING: toctree contains reference to nonexisting document u'Links' 8 |  -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Applicant Tracking System (ATS) ![CI](https://github.com/pagemachine/ats/workflows/CI/badge.svg) 2 | 3 | Highly customizable enterprise application tracking system based on Extbase & Fluid. Provides management of job offers and job applications, allowing for complex job application workflows involving numerous roles as they are required in environments of universities as well as private and public companies. 4 | 5 | Make sure to read the [Extension Manual](https://docs.typo3.org/typo3cms/extensions/ats/) for details. 6 | 7 | ## Installation 8 | 9 | This extension is installable from various sources: 10 | 11 | 1. Via [Composer](https://packagist.org/packages/pagemachine/ats): 12 | 13 | composer require pagemachine/ats 14 | 15 | 2. From the [TYPO3 Extension Repository](https://extensions.typo3.org/extension/ats/) 16 | 3. From [Github](https://github.com/pagemachine/ats/releases) 17 | 18 | ## Testing 19 | 20 | All tests can be executed with the shipped Docker Compose definition: 21 | 22 | docker compose run --rm app composer build 23 | -------------------------------------------------------------------------------- /Resources/Private/Language/de.locallang_mod.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | ATS 8 | BMS 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Resources/Private/Language/de.locallang_mod_applications.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | Applications 8 | Bewerbungen 9 | 10 | 11 | List Applications 12 | Liste der Bewerbungen 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Resources/Private/Language/de.locallang_mod_archive.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | Archive & Pools 8 | Archiv & Pools 9 | 10 | 11 | Application Archive with pools 12 | Archiv der Bewerbungen und Pools 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Resources/Private/Language/de.locallang_mod_notification.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | Mass Notification 8 | Massenbescheide 9 | 10 | 11 | Communicate to multiple applicants at once 12 | Massenkommunikation mit mehreren Bewerbern 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Resources/Private/Language/de.locallang_mod_statistics.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | Statistics & Export 8 | Statistiken & Export 9 | 10 | 11 | Application statistics 12 | Anzeige und Export von Statistiken 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Resources/Private/Language/locallang_mod.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | ATS 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Resources/Private/Language/locallang_mod_applications.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | Applications 8 | 9 | 10 | List Applications 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Resources/Private/Language/locallang_mod_archive.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | Archive & Pools 8 | 9 | 10 | Application Archive with pools 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Resources/Private/Language/locallang_mod_notification.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | Mass Notification 8 | 9 | 10 | Communicate to multiple applicants at once 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Resources/Private/Language/locallang_mod_statistics.xlf: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |
5 | 6 | 7 | Statistics & Export 8 | 9 | 10 | Application statistics 11 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Resources/Private/Layouts/Backend/ApplicationSingle.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 |
3 | 4 | 5 |

6 | << 7 |

8 | 9 |

{application.firstname} {application.surname} "{application.job.title}"

10 | 11 | 12 | 13 |
14 | 15 | 24 | 25 |
26 |
27 |
28 |
29 | 30 |
31 |
32 |
33 |
34 |
35 |
36 | 37 | -------------------------------------------------------------------------------- /Resources/Private/Layouts/Backend/Backend.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 |
6 | -------------------------------------------------------------------------------- /Resources/Private/Layouts/Backend/List.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 |
5 |
6 | 7 |
8 |
9 | 10 |
11 |
12 | 13 | 14 |
15 | -------------------------------------------------------------------------------- /Resources/Private/Layouts/Default.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/Checkbox.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
6 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/Honeypot.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 |
6 |
7 | 12 |
13 |
14 |
-------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/Label.html: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/RadioButton.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 |
6 |
7 |
8 | 14 |
15 |
16 | 22 |
23 | 24 |
25 |
26 |
27 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/SelectCountry.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 |
3 |
4 | 5 |
6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 | 18 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/SelectNationality.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 |
3 |
4 | 5 |
6 |
7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 |
17 | 18 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/SelectTranslated.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 |
3 |
4 | 5 |
6 |
7 | 14 |
15 |
16 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/Selectbox.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
6 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/SubmitButton.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | {defaultLabel} 5 | 6 |
7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/SummaryList.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 6 |
7 |
8 | {text} 9 | 10 | {date -> f:format.date(format: 'Y-m-d')} 11 |
12 | 13 |
14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/SummaryListFiles.html: -------------------------------------------------------------------------------- 1 | 4 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/SummaryListLanguage.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
6 | 7 |
8 |
9 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/TextField.html: -------------------------------------------------------------------------------- 1 | 2 |
3 |
4 | 5 |
6 |
7 | 12 | 13 |
14 |
15 |
16 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/Textarea.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 |
5 |
6 | 14 |
15 |
16 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/Field/ValidationError.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | {error.message} 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Application/ValidationResults.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/Checkbox.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 12 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/RadioButton.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 7 | 8 | 9 |
10 | 16 |
17 |
18 | 24 |
25 | 26 | 27 | 28 |
29 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/SelectCountry.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/SelectNationality.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 | 4 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/SelectTranslated.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 | 4 | 7 | 8 | 9 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/Selectbox.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/SubmitButton.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {defaultLabel} 4 | 5 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/SummaryList.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | {text} 9 | 10 | {date -> f:format.date(format: 'Y-m-d')} 11 | 12 | 13 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/SummaryListFiles.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 17 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/SummaryListLanguage.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/TextField.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/Textarea.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 6 | 7 | 8 | 16 | 17 | 18 | 19 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Field/Upload.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 | 4 | 7 | 8 | 9 |
10 |
11 | 12 |
13 | 30 |
31 | 32 | 33 | 34 |
35 |
36 | 37 | 40 |
41 |
42 | 43 |
44 |
45 | 46 | 47 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/FilterBar.html: -------------------------------------------------------------------------------- 1 |
2 |
3 | 4 | 5 |
6 | 7 | 8 |
9 | 10 |
11 | 12 | 13 |
14 | 15 |
16 | 17 | 21 | 22 |
23 | 24 |
25 | 26 | 27 |
28 | 29 | 30 |
31 |
32 |
33 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Form/AdditionalInformation.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 12 | 13 | 26 | 27 | 35 |
36 | 37 |
38 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Form/General.html: -------------------------------------------------------------------------------- 1 |
2 | General 3 | 4 | 5 | 10 | 19 | 20 | 26 |
6 | 9 | 11 | 17 | 18 |
27 |
28 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Form/Introduction.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 | 11 | 12 | 21 |
22 | 23 |
24 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Form/Message.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Form/Rating.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | {propertyPath} : {error.code} 25 | 26 | 27 | 28 |
29 |
30 | 31 |
32 | 33 |
34 | 35 |
36 | 37 |

38 | 39 | 40 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Form/StatusChange.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 |
4 | 5 |
6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 |
16 | 17 |
18 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Form/Upload.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 9 |
10 |
11 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/Message/Fields.html: -------------------------------------------------------------------------------- 1 |
    2 |
  • Subject: {history.details.subject}
  • 3 |
  • Cc: {history.details.cc}
  • 4 |
  • Bcc: {history.details.bcc}
  • 5 |
  • Message: {history.details.message -> f:format.raw()}
  • 6 |
7 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/acknowledge.html: -------------------------------------------------------------------------------- 1 |

Acknowledgement was sent ()

2 | 3 | 4 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/autoAcknowledge.html: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/backToPerso.html: -------------------------------------------------------------------------------- 1 |

Application was sent back to personell department. 2 | 3 | 4 |

Note: {history.details.note}

5 | 6 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/clone.html: -------------------------------------------------------------------------------- 1 |

Application was cloned 2 | 3 | 4 |

(Original ID: {history.details.source})

5 | 6 | 7 | 8 | 9 |

Note: {history.details.note}

10 |
11 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/cloned.html: -------------------------------------------------------------------------------- 1 |

Application was cloned 2 | 3 | 4 |

(ID: {history.details.clone})

5 | 6 | 7 |

8 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/close.html: -------------------------------------------------------------------------------- 1 |

Application was closed 2 | ().

3 | 4 | 5 |

Note: {history.details.note}

6 |
7 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/edit.html: -------------------------------------------------------------------------------- 1 |

Edit

2 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/file.html: -------------------------------------------------------------------------------- 1 | FILE 2 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/invite.html: -------------------------------------------------------------------------------- 1 |

Invitation was sent ()

2 | 3 | 4 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/massPoolMoving.html: -------------------------------------------------------------------------------- 1 |

Workflow: ({history.details.status})

2 |

Move to job {history.details.job}

3 | 4 |

Note: {history.details.note}

5 |
6 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/moveToPool.html: -------------------------------------------------------------------------------- 1 |

2 | 3 | Application was added to pool 4 | 5 | 6 | Application was remove from pool 7 | 8 |

9 | 10 | 11 |

Note: {history.details.note}

12 |
13 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/new.html: -------------------------------------------------------------------------------- 1 |

New Application

2 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/none.html: -------------------------------------------------------------------------------- 1 | [NO SUBJECT] 2 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/note.html: -------------------------------------------------------------------------------- 1 |

A new note was added:

2 | 3 |

{history.details.note}

4 | 5 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/rating.html: -------------------------------------------------------------------------------- 1 |

2 | Rating: 3 | ({history.details.rating}) 4 |

5 | 6 | 7 |

Note: {history.details.note}

8 |
9 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/ratingPerso.html: -------------------------------------------------------------------------------- 1 |

2 | Rating Perso: 3 | ({history.details.ratingPerso}) 4 |

5 | 6 | 7 |

Note: {history.details.note}

8 |
9 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/reject.html: -------------------------------------------------------------------------------- 1 |

Acknowledgement was sent ()

2 | 3 | 4 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/removeUpload.html: -------------------------------------------------------------------------------- 1 |

File removed: {file}

2 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/reply.html: -------------------------------------------------------------------------------- 1 |

New reply was sent ()

2 | 3 | 4 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/History/workflow.html: -------------------------------------------------------------------------------- 1 |

Workflow: ({history.details.status})

2 | 3 | 4 |

Note: {history.details.note}

5 |
6 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/ListArchived.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 | 4 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/ListDeadlineExceeded.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 |

4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/ListInProgress.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 |

4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/ListNew.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 |

4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/ListNotification.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 | 4 | 5 |
6 |
7 | 8 |
9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/ListPool.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/NoteList.html: -------------------------------------------------------------------------------- 1 | {namespace be=TYPO3\CMS\Backend\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 18 | 25 | 38 | 39 | 40 | 41 | 42 |
16 | {note.creationDate} 17 | 19 | 20 | 21 | {note.user.userName} 22 | 23 | 24 | 26 | {note.subject} 27 | 28 | 29 | 30 | {note.details} 31 | 32 | 33 | {note.details} 34 | 35 | 36 | 37 |
43 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/Table.html: -------------------------------------------------------------------------------- 1 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 2 | 3 | 4 | 5 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Application/ValidationResults.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/FlashMessages.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 |
5 |
6 |
7 | 8 | 9 | 10 | 11 |
12 |
13 |

{message.title}

14 |
{message.message}
15 |
16 |
17 |
18 | 19 |
20 | 21 |
22 | 23 |
-------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Message/AcknowledgeMessage.html: -------------------------------------------------------------------------------- 1 | Acknowledge messages do not have additional fields, so nothing to do here. 2 | Do not remove, this is a placeholder partial called automatically by message name. 3 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Message/Fields/Date.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | {field} : {error.message} 8 | 9 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Message/Fields/DateTime.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | {field} : {error.message} 8 | 9 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Message/Fields/Textarea.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | 8 | 9 | {field} : {error.message} 10 | 11 | 12 |
13 |
14 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Message/Fields/Textfield.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | {field} : {error.message} 8 | 9 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Message/Fields/Time.html: -------------------------------------------------------------------------------- 1 | 2 |
3 | 4 | 5 | 6 | 7 | {field} : {error.message} 8 | 9 | 10 |
11 |
12 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Message/InviteMessage.html: -------------------------------------------------------------------------------- 1 | 6 | 7 | 12 | 13 | 18 | 19 | 24 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Message/RejectMessage.html: -------------------------------------------------------------------------------- 1 | Reject messages do not have additional fields, so nothing to do here. 2 | Do not remove, this is a placeholder partial called automatically by message name. 3 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/Message/ReplyMessage.html: -------------------------------------------------------------------------------- 1 | Reply messages do not have additional fields, so nothing to do here. 2 | Do not remove, this is a placeholder partial called automatically by message name. 3 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/SharedApplicationActions/Clone.html: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 |
6 | 7 |
8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 |
18 | 19 |
20 | 21 |
22 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/SharedApplicationActions/Edit.html: -------------------------------------------------------------------------------- 1 | {namespace core = TYPO3\CMS\Core\ViewHelpers} 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 18 | 19 | 20 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/SharedApplicationActions/EditStatus.html: -------------------------------------------------------------------------------- 1 | {namespace core = TYPO3\CMS\Core\ViewHelpers} 2 | 3 |

4 | 5 | 6 | 7 | 8 | 9 | 10 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/SharedApplicationActions/History.html: -------------------------------------------------------------------------------- 1 | {namespace be=TYPO3\CMS\Backend\ViewHelpers} 2 | 3 |

4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 23 | 30 | 36 | 52 | 53 | 54 | 55 | 56 | 57 |
Details
21 | {history.creationDate -> f:format.date(format:'{settings.dateFormat} {settings.timeFormat}')} 22 | 24 | 25 | 26 | {history.user.userName} 27 | 28 | 29 | 31 | {history.subject} 32 | 33 | 34 | 35 | 37 | 38 |
39 | 40 |
41 |
42 | {field}: 43 |
44 |
45 | {fieldDiff} 46 |
47 |
48 |
49 |
50 |
51 |
58 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Backend/SharedApplicationActions/Notes.html: -------------------------------------------------------------------------------- 1 |

2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 13 |
14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | {propertyPath} : {error.code} 24 | 25 | 26 | 27 |
28 |
29 | 30 |
31 | 32 |
33 | 34 |
35 | 36 |

37 | 38 | 39 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Job/Categories.html: -------------------------------------------------------------------------------- 1 | 2 | {category.title} 3 | 4 | -------------------------------------------------------------------------------- /Resources/Private/Partials/Job/JsonLd.html: -------------------------------------------------------------------------------- 1 | 2 | 5 | 6 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Application/Form/Form.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |

General

7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |

24 |

25 |

26 |

27 |

28 | 29 | 41 |
42 | 43 | 44 | 45 | 46 | 50 | 51 | 52 | 53 | 54 | 55 | 56 |
57 | 61 |
62 | 63 | 64 |
65 | 66 |
67 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Application/Submit/ShowSimpleSummary.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |

Summary

7 | 8 | 9 | 10 |

Personal Data

11 | 12 | 16 | 17 | 21 | 22 | 26 | 27 | 31 | 32 | 36 | 37 |

Upload

38 | 39 | 44 | 45 |
46 |
47 | 48 |
49 | 50 | 54 |
55 | 56 |
57 | 58 |
59 | 60 | 61 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Application/Submit/Submitted.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Thank you for your submission

6 | 7 |
8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Application/Upload/EditUpload.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

Upload

6 | 7 | 8 | 9 | 10 | 15 | 16 | 17 |
18 |
19 | 20 |
21 | 22 | 26 |
27 | 28 |
29 |
30 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/Acknowledge.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

5 | 6 |
7 | 8 | 9 | 10 | 11 |
12 | 13 |
14 | 15 |
16 |
17 |
18 |

{message.renderedSubject}

19 |
20 |
21 | {message.renderedBody} 22 |
23 |
24 |
25 | 26 |
27 | 28 | 29 |
30 | 31 |
32 | 33 |
34 | 35 |
36 |
37 | 38 |
39 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/BackToPerso.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

{f:translate(key: 'tx_ats.be.actions.application.backToPerso')}

6 | 7 | 8 |

{f:if(condition: '{user.realName}', then: '{user.realName} ( {user.userName} )', else: '{user.userName}')}

9 |
10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 |
21 | 22 |
23 |
24 | 25 | 26 |
27 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/Clone.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/Close.html: -------------------------------------------------------------------------------- 1 | {namespace core = TYPO3\CMS\Core\ViewHelpers} 2 | 3 | 4 | 5 |

6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 |
-------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/Edit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/EditStatus.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/History.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/Invite.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

5 | 6 |
7 | 8 | 9 | 10 | 11 |
12 | 13 |
14 | 15 |
16 |
17 |
18 |

{message.renderedSubject}

19 |
20 |
21 | {message.renderedBody} 22 |
23 |
24 |
25 | 26 |
27 | 28 | 29 |
30 | 31 |
32 | 33 |
34 | 35 |
36 |
37 | 38 |
39 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/ListAll.html: -------------------------------------------------------------------------------- 1 | 2 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 3 | {namespace core = TYPO3\CMS\Core\ViewHelpers} 4 | 5 | 6 | 7 |

8 | 9 |

10 | 11 | 12 | 13 |

14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/ListMine.html: -------------------------------------------------------------------------------- 1 | 2 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 3 | {namespace core = TYPO3\CMS\Core\ViewHelpers} 4 | 5 | 6 | 7 |

8 | 9 |

10 | 11 | 12 | 13 |

14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/New.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 |

6 | << 7 |

8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 23 | 24 | 25 | 26 |
27 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/Notes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/Rating.html: -------------------------------------------------------------------------------- 1 | {namespace core = TYPO3\CMS\Core\ViewHelpers} 2 | 3 | 4 | 5 |

6 | 7 |
8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/RatingPerso.html: -------------------------------------------------------------------------------- 1 | {namespace core = TYPO3\CMS\Core\ViewHelpers} 2 | 3 | 4 | 5 |

6 | 7 |
8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/Reject.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

5 | 6 |
7 | 8 | 9 | 10 | 11 |
12 | 13 |
14 | 15 |
16 |
17 |
18 |

{message.renderedSubject}

19 |
20 |
21 | {message.renderedBody} 22 |
23 |
24 |
25 | 26 |
27 | 28 | 29 |
30 | 31 |
32 | 33 |
34 | 35 |
36 |
37 | 38 |
39 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/Reply.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 |

5 | 6 |
7 | 8 | 9 | 10 | 11 |
12 | 13 |
14 | 15 |
16 |
17 |
18 |

{message.renderedSubject}

19 |
20 |
21 | {message.renderedBody} 22 |
23 |
24 |
25 | 26 |
27 | 28 | 29 |
30 | 31 |
32 | 33 |
34 | 35 |
36 |
37 | 38 |
39 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/Application/Show.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/ArchivedApplication/Clone.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/ArchivedApplication/Edit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/ArchivedApplication/EditStatus.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/ArchivedApplication/History.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/ArchivedApplication/ListAll.html: -------------------------------------------------------------------------------- 1 | 2 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 3 | 4 | 5 | 6 |

7 | 8 | 9 | 10 | 11 | 12 |
13 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/ArchivedApplication/ListPool.html: -------------------------------------------------------------------------------- 1 | 2 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 3 | 4 | 5 | 6 |

Pool

7 | 8 | 9 | 10 | 11 | 12 |
13 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/ArchivedApplication/MoveToPool.html: -------------------------------------------------------------------------------- 1 | {namespace core = TYPO3\CMS\Core\ViewHelpers} 2 | 3 | 4 | 5 |

Pool

6 | 7 | 8 | 9 | 10 |
11 | 12 |
13 | 16 |
17 | 18 | 19 | 20 | 21 |
22 | 23 |
24 | 25 |
26 | 27 |
28 | 29 |

All notes

30 | 31 | 32 |
33 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/ArchivedApplication/Notes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/ArchivedApplication/Show.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/NotificationApplication/Clone.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/NotificationApplication/Edit.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/NotificationApplication/EditStatus.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/NotificationApplication/History.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/NotificationApplication/ListAll.html: -------------------------------------------------------------------------------- 1 | 2 | {namespace ats=PAGEmachine\Ats\ViewHelpers} 3 | 4 | 5 | 6 |

7 | 8 | 9 | 10 |
11 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/NotificationApplication/NewMassNotification.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 |
Selected Applications
9 |
10 | 11 |
12 |
13 | 14 |
15 | 16 |
17 |
18 | New Mass Notification 19 |
20 |
21 | 22 | 23 | 24 |
25 |
26 | 27 | 28 | 29 |
30 | 31 |
32 | 33 |
34 |
35 |
36 |

{message.renderedSubject}

37 |
38 |
39 | {message.renderedBody} 40 |
41 |
42 |
43 | 44 |
45 | 46 | 47 |
48 | 49 |
50 | 51 |
52 | 53 |
54 |
55 |
56 |
57 | 58 |
59 | 60 |
61 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/NotificationApplication/Notes.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/NotificationApplication/Result.html: -------------------------------------------------------------------------------- 1 |
2 | 3 | 4 | 5 |

6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 |
Name
{result.name}{result.mail}
27 |
28 | 29 | 30 |

31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 |
Name
{result.name}
51 |
52 | 53 |
54 | 55 | 56 | 57 |
58 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Backend/NotificationApplication/Show.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Job/List.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 |
    7 | 8 |
  • 9 | 10 | 11 | {job.title} [{job.jobNumber}] 12 | 13 | 14 | {job.title} [{job.jobNumber}] 15 | 16 | 17 | 18 | 19 |
  • 20 | 21 |
    22 |
23 | 24 |
25 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Job/Show.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |

{job.title}

9 | 10 | 11 | 12 |

13 | {job.description} 14 |

15 | 16 |

17 | Start Application 18 |

19 |
20 |

21 | {job.descriptionAfterLink} 22 |

23 | 24 |
25 | 26 |
27 | 28 |
29 |
30 |
31 | 32 | 33 | 34 |
35 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Mail/Html.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | {subject} 4 | 5 | 6 | {body -> f:format.raw()} 7 | 8 | 9 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Pdf/Body.html: -------------------------------------------------------------------------------- 1 |
2 | {body -> f:format.raw()} 3 |
4 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Pdf/Footer.html: -------------------------------------------------------------------------------- 1 |
2 | {backenduser.tx_ats_pdf_signature} 3 |
4 |
5 | 6 | -------------------------------------------------------------------------------- /Resources/Private/Templates/Pdf/Header.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 6 | 7 | 13 | 15 | 16 |
4 |
8 | {application.firstname} {application.surname}
9 | {application.street}
10 | {application.zipcode}, {application.city}
11 | {application.country.shortNameEn}
12 |
14 |
17 | -------------------------------------------------------------------------------- /Resources/Public/Css/libs/images/sort_asc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/Css/libs/images/sort_asc.png -------------------------------------------------------------------------------- /Resources/Public/Css/libs/images/sort_asc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/Css/libs/images/sort_asc_disabled.png -------------------------------------------------------------------------------- /Resources/Public/Css/libs/images/sort_both.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/Css/libs/images/sort_both.png -------------------------------------------------------------------------------- /Resources/Public/Css/libs/images/sort_desc.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/Css/libs/images/sort_desc.png -------------------------------------------------------------------------------- /Resources/Public/Css/libs/images/sort_desc_disabled.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/Css/libs/images/sort_desc_disabled.png -------------------------------------------------------------------------------- /Resources/Public/Icons/btn_print.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/Icons/btn_print.png -------------------------------------------------------------------------------- /Resources/Public/Icons/module_applications.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 12 | 14 | 15 | -------------------------------------------------------------------------------- /Resources/Public/Icons/module_archive.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 9 | 10 | 11 | 13 | 14 | 15 | -------------------------------------------------------------------------------- /Resources/Public/Icons/module_massnotifications.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 12 | 13 | 15 | 16 | 17 | -------------------------------------------------------------------------------- /Resources/Public/Icons/module_newapplication.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | 11 | 13 | 15 | 16 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /Resources/Public/Icons/module_statistics.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 5 | 10 | module-indexed_search 11 | 12 | 13 | 15 | 18 | 19 | 20 | 21 | -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_ats_domain_model_job.svg: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /Resources/Public/Icons/tx_ats_domain_model_texttemplate.svg: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/README.md: -------------------------------------------------------------------------------- 1 | CKEditor 4 2 | ========== 3 | 4 | Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 5 | http://ckeditor.com - See LICENSE.md for license information. 6 | 7 | CKEditor is a text editor to be used inside web pages. It's not a replacement 8 | for desktop text editors like Word or OpenOffice, but a component to be used as 9 | part of web applications and websites. 10 | 11 | ## Documentation 12 | 13 | The full editor documentation is available online at the following address: 14 | http://docs.ckeditor.com 15 | 16 | ## Installation 17 | 18 | Installing CKEditor is an easy task. Just follow these simple steps: 19 | 20 | 1. **Download** the latest version from the CKEditor website: 21 | http://ckeditor.com. You should have already completed this step, but be 22 | sure you have the very latest version. 23 | 2. **Extract** (decompress) the downloaded file into the root of your website. 24 | 25 | **Note:** CKEditor is by default installed in the `ckeditor` folder. You can 26 | place the files in whichever you want though. 27 | 28 | ## Checking Your Installation 29 | 30 | The editor comes with a few sample pages that can be used to verify that 31 | installation proceeded properly. Take a look at the `samples` directory. 32 | 33 | To test your installation, just call the following page at your website: 34 | 35 | http:////samples/index.html 36 | 37 | For example: 38 | 39 | http://www.example.com/ckeditor/samples/index.html 40 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/build-config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /** 7 | * This file was added automatically by CKEditor builder. 8 | * You may re-use it at any time to build CKEditor again. 9 | * 10 | * If you would like to build CKEditor online again 11 | * (for example to upgrade), visit one the following links: 12 | * 13 | * (1) http://ckeditor.com/builder 14 | * Visit online builder to build CKEditor from scratch. 15 | * 16 | * (2) http://ckeditor.com/builder/992801b032eb0eb1ce9ad0b46edd3155 17 | * Visit online builder to build CKEditor, starting with the same setup as before. 18 | * 19 | * (3) http://ckeditor.com/builder/download/992801b032eb0eb1ce9ad0b46edd3155 20 | * Straight download link to the latest version of CKEditor (Optimized) with the same setup as before. 21 | * 22 | * NOTE: 23 | * This file is not used by CKEditor, you may remove it. 24 | * Changing this file will not change your CKEditor configuration. 25 | */ 26 | 27 | var CKBUILDER_CONFIG = { 28 | skin: 'bootstrapck', 29 | preset: 'basic', 30 | ignore: [ 31 | '.bender', 32 | 'bender.js', 33 | 'bender-err.log', 34 | 'bender-out.log', 35 | 'dev', 36 | '.DS_Store', 37 | '.editorconfig', 38 | '.gitattributes', 39 | '.gitignore', 40 | 'gruntfile.js', 41 | '.idea', 42 | '.jscsrc', 43 | '.jshintignore', 44 | '.jshintrc', 45 | 'less', 46 | '.mailmap', 47 | 'node_modules', 48 | 'package.json', 49 | 'README.md', 50 | 'tests' 51 | ], 52 | plugins : { 53 | 'about' : 1, 54 | 'basicstyles' : 1, 55 | 'enterkey' : 1, 56 | 'entities' : 1, 57 | 'floatingspace' : 1, 58 | 'indentlist' : 1, 59 | 'link' : 1, 60 | 'list' : 1, 61 | 'placeholder' : 1, 62 | 'toolbar' : 1, 63 | 'undo' : 1, 64 | 'wysiwygarea' : 1 65 | }, 66 | languages : { 67 | 'de' : 1, 68 | 'en' : 1 69 | } 70 | }; 71 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/config.js: -------------------------------------------------------------------------------- 1 | /** 2 | * @license Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 3 | * For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | CKEDITOR.editorConfig = function( config ) { 7 | // Define changes to default configuration here. 8 | // For complete reference see: 9 | // http://docs.ckeditor.com/#!/api/CKEDITOR.config 10 | 11 | // The toolbar groups arrangement, optimized for a single toolbar row. 12 | config.toolbarGroups = [ 13 | { name: 'document', groups: [ 'mode', 'document', 'doctools' ] }, 14 | { name: 'clipboard', groups: [ 'clipboard', 'undo' ] }, 15 | { name: 'editing', groups: [ 'find', 'selection', 'spellchecker' ] }, 16 | { name: 'forms' }, 17 | { name: 'basicstyles', groups: [ 'basicstyles', 'cleanup' ] }, 18 | { name: 'paragraph', groups: [ 'list', 'indent', 'blocks', 'align', 'bidi' ] }, 19 | { name: 'links' }, 20 | { name: 'insert' }, 21 | { name: 'styles' }, 22 | { name: 'colors' }, 23 | { name: 'tools' }, 24 | { name: 'others' }, 25 | { name: 'about' } 26 | ]; 27 | 28 | // The default plugins included in the basic setup define some buttons that 29 | // are not needed in a basic editor. They are removed here. 30 | config.removeButtons = 'Cut,Copy,Paste,Undo,Redo,Anchor,Underline,Strike,Subscript,Superscript'; 31 | 32 | // Dialog windows are also simplified. 33 | config.removeDialogTabs = 'link:advanced'; 34 | }; 35 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/about/dialogs/about.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("about",function(a){a=a.lang.about;var b=CKEDITOR.getUrl(CKEDITOR.plugins.get("about").path+"dialogs/"+(CKEDITOR.env.hidpi?"hidpi/":"")+"logo_ckeditor.png");return{title:CKEDITOR.env.ie?a.dlgTitle:a.title,minWidth:390,minHeight:230,contents:[{id:"tab1",label:"",title:"",expand:!0,padding:0,elements:[{type:"html",html:'\x3cstyle type\x3d"text/css"\x3e.cke_about_container{color:#000 !important;padding:10px 10px 0;margin-top:5px}.cke_about_container p{margin: 0 0 10px;}.cke_about_container .cke_about_logo{height:81px;background-color:#fff;background-image:url('+ 6 | b+");"+(CKEDITOR.env.hidpi?"background-size:163px 58px;":"")+'background-position:center; background-repeat:no-repeat;margin-bottom:10px;}.cke_about_container a{cursor:pointer !important;color:#00B2CE !important;text-decoration:underline !important;}\x3c/style\x3e\x3cdiv class\x3d"cke_about_container"\x3e\x3cdiv class\x3d"cke_about_logo"\x3e\x3c/div\x3e\x3cp\x3eCKEditor '+CKEDITOR.version+" (revision "+CKEDITOR.revision+')\x3cbr\x3e\x3ca target\x3d"_blank" rel\x3d"noopener noreferrer" href\x3d"http://ckeditor.com/"\x3ehttp://ckeditor.com\x3c/a\x3e\x3c/p\x3e\x3cp\x3e'+ 7 | a.help.replace("$1",'\x3ca target\x3d"_blank" rel\x3d"noopener noreferrer" href\x3d"http://docs.ckeditor.com/user"\x3e'+a.userGuide+"\x3c/a\x3e")+"\x3c/p\x3e\x3cp\x3e"+a.moreInfo+'\x3cbr\x3e\x3ca target\x3d"_blank" rel\x3d"noopener noreferrer" href\x3d"http://ckeditor.com/about/license"\x3ehttp://ckeditor.com/about/license\x3c/a\x3e\x3c/p\x3e\x3cp\x3e'+a.copy.replace("$1",'\x3ca target\x3d"_blank" rel\x3d"noopener noreferrer" href\x3d"http://cksource.com/"\x3eCKSource\x3c/a\x3e - Frederico Knabben')+ 8 | "\x3c/p\x3e\x3c/div\x3e"}]}],buttons:[CKEDITOR.dialog.cancelButton]}}); -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/plugins/about/dialogs/hidpi/logo_ckeditor.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/about/dialogs/logo_ckeditor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/plugins/about/dialogs/logo_ckeditor.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/dialog/dialogDefinition.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/plugins/icons.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/icons_hidpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/plugins/icons_hidpi.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/link/dialogs/anchor.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("anchor",function(c){function d(a,b){return a.createFakeElement(a.document.createElement("a",{attributes:b}),"cke_anchor","anchor")}return{title:c.lang.link.anchor.title,minWidth:300,minHeight:60,onOk:function(){var a=CKEDITOR.tools.trim(this.getValueOf("info","txtName")),a={id:a,name:a,"data-cke-saved-name":a};if(this._.selectedElement)this._.selectedElement.data("cke-realelement")?(a=d(c,a),a.replace(this._.selectedElement),CKEDITOR.env.ie&&c.getSelection().selectElement(a)): 6 | this._.selectedElement.setAttributes(a);else{var b=c.getSelection(),b=b&&b.getRanges()[0];b.collapsed?(a=d(c,a),b.insertNode(a)):(CKEDITOR.env.ie&&9>CKEDITOR.env.version&&(a["class"]="cke_anchor"),a=new CKEDITOR.style({element:"a",attributes:a}),a.type=CKEDITOR.STYLE_INLINE,c.applyStyle(a))}},onHide:function(){delete this._.selectedElement},onShow:function(){var a=c.getSelection(),b=a.getSelectedElement(),d=b&&b.data("cke-realelement"),e=d?CKEDITOR.plugins.link.tryRestoreFakeAnchor(c,b):CKEDITOR.plugins.link.getSelectedLink(c); 7 | if(e){this._.selectedElement=e;var f=e.data("cke-saved-name");this.setValueOf("info","txtName",f||"");!d&&a.selectElement(e);b&&(this._.selectedElement=b)}this.getContentElement("info","txtName").focus()},contents:[{id:"info",label:c.lang.link.anchor.title,accessKey:"I",elements:[{type:"text",id:"txtName",label:c.lang.link.anchor.name,required:!0,validate:function(){return this.getValue()?!0:(alert(c.lang.link.anchor.errorName),!1)}}]}]}}); -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/link/images/anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/plugins/link/images/anchor.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/link/images/hidpi/anchor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/plugins/link/images/hidpi/anchor.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/placeholder/dialogs/placeholder.js: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2017, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | CKEDITOR.dialog.add("placeholder",function(a){var b=a.lang.placeholder;a=a.lang.common.generalTab;return{title:b.title,minWidth:300,minHeight:80,contents:[{id:"info",label:a,title:a,elements:[{id:"name",type:"text",style:"width: 100%;",label:b.name,"default":"",required:!0,validate:CKEDITOR.dialog.validate.regex(/^[^\[\]<>]+$/,b.invalidName),setup:function(a){this.setValue(a.data.name)},commit:function(a){a.setData("name",this.getValue())}}]}]}}); -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/placeholderPresets/lang/de.js: -------------------------------------------------------------------------------- 1 | CKEDITOR.plugins.setLang( 'placeholderPresets', 'de', { 2 | markers: { 3 | application: { 4 | salutation: 'Anrede des Bewerbers', 5 | title: 'Titel des Bewerbers', 6 | firstname: 'Vorname des Bewerbers', 7 | surname: 'Nachname des Bewerbers', 8 | job: { 9 | title: 'Jobtitel', 10 | jobNumber: 'Job Nr.' 11 | } 12 | }, 13 | fields: { 14 | date: 'Datum', 15 | time: 'Zeit', 16 | confirmDate: 'Bestätigungsdatum', 17 | building: 'Gebäude', 18 | room: 'Raum' 19 | }, 20 | backenduser: { 21 | signature: 'Ihre Signatur' 22 | } 23 | } 24 | } ); 25 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/placeholderPresets/lang/en.js: -------------------------------------------------------------------------------- 1 | CKEDITOR.plugins.setLang( 'placeholderPresets', 'en', { 2 | markers: { 3 | application: { 4 | salutation: 'Applicant Salutation', 5 | title: 'Applicant Title', 6 | firstname: 'Applicant Firstname', 7 | surname: 'Applicant Surname', 8 | job: { 9 | title: 'Job title', 10 | jobNumber: 'Job No.' 11 | } 12 | }, 13 | fields: { 14 | date: 'Date', 15 | time: 'Time', 16 | confirmDate: 'Confirmation Date', 17 | building: 'Building', 18 | room: 'Room' 19 | }, 20 | backenduser: { 21 | signature: 'Your Signature' 22 | } 23 | } 24 | } ); 25 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/plugins/widget/images/handle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/plugins/widget/images/handle.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/icons.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/skins/bootstrapck/icons.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/icons_hidpi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/skins/bootstrapck/icons_hidpi.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/arrow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/arrow.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/close.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/hidpi/close.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/hidpi/close.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/hidpi/lock-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/hidpi/lock-open.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/hidpi/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/hidpi/lock.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/hidpi/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/hidpi/refresh.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/lock-open.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/lock-open.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/lock.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/refresh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/Resources/Public/JavaScript/ckeditor/skins/bootstrapck/images/refresh.png -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/readme.md: -------------------------------------------------------------------------------- 1 | BootstrapCK Skin 2 | ==================== 3 | 4 | The BootstrapCK-Skin is a skin for [CKEditor4](http://ckeditor.com/) based on [Twitter Bootstrap3](http://getbootstrap.com/) styles. 5 | 6 | [Sass](http://sass-lang.com/) is used to rewrite the editor's styles and [Grunt](http://gruntjs.com/) to be able to watch, convert and minify the sass into css files. These files aren't really needed for the simple use of the skin, but handy if you want to make some adjustments to it. 7 | 8 | For more information about skins, please check the [CKEditor Skin SDK](http://docs.cksource.com/CKEditor_4.x/Skin_SDK) 9 | documentation. 10 | 11 | ## Installation 12 | 13 | **Just skin please** 14 | 15 | Add the whole bootstrapck folder to the skin folder.
16 | In ckeditor.js and config.js change the skin name to "bootstrapck".
17 | Done! 18 | 19 | **The whole skin - sass - grunt package** 20 | 21 | All the sass files are included in the bootstrapck folder, so first follow the 'just skin please'-steps
22 | Now add the Gruntfile.js and the package.json to de ckeditor folder. 23 | 24 | npm install 25 | grunt build 26 | 27 | You can start tampering now. 28 | 29 | ## Demo 30 | 31 | http://kunstmaan.github.io/BootstrapCK4-Skin/ 32 | 33 | ### Previous version 34 | 35 | If you would like to get the Bootstrap2 skin for CKeditor3, [here](https://github.com/Kunstmaan/BootstrapCK-Skin)'s the previous version. 36 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/sample/css/bootstrapck-sample.css: -------------------------------------------------------------------------------- 1 | body{margin-top:1.0em;background-color:#fff;font-family:Helvetica,Arial,sans-serif;color:#404040}.container{margin:0 auto;width:900px;padding:0 0 20px}h1{font-size:40px;margin:40px 0 28px;padding:110px 0 9px;border-bottom:1px solid #ccc}h1 a,h1 a:visited,h1 a:focus,h1 a:hover{color:#404040;text-decoration:none}h1 span{font-size:18px;font-weight:normal;color:#bfbfbf}h1 span a,h1 span a:visited,h1 span a:focus,h1 span a:hover{color:#bfbfbf}h1 a{text-decoration:none}h2{font-size:23px;margin:10px 0 8px}h3{font-size:16px;margin:10px 0 8px}p{margin:0 0 30px;font-size:13px;line-height:18px}a,a:visited,a:focus{color:#0069d6;text-decoration:none}a:hover{color:#00438a;text-decoration:underline}.download{float:right}pre{background:#f5f5f5;color:#404040;padding:16px;border:1px solid rgba(0,0,0,0.05);border-radius:4px;box-shadow:0 1px 1px rgba(0,0,0,0.05) inset;margin:-20px 0 10px;line-height:200%}.twitter{margin:-20px 0 40px;color:#666}.twitter iframe{vertical-align:bottom;margin:0 0 0 5px}.footer{text-align:center;padding-top:20px;margin-top:60px;font-size:14px;color:#808080;border-top:1px solid #ccc}.footer a,.footer a:visited,.footer a:focus{color:#333}.footer a:hover{color:#000} -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/sample/js/analytics.js: -------------------------------------------------------------------------------- 1 | var _ga=_ga||{},_gaq=_gaq||[];_ga.trackSocial=function(a,c){_ga.trackFacebook(a,c);_ga.trackTwitter(a,c)}; 2 | _ga.trackFacebook=function(a,c){var d=_ga.buildTrackerName_(c);try{FB&&FB.Event&&FB.Event.subscribe&&(FB.Event.subscribe("edge.create",function(b){_gaq.push([d+"_trackSocial","facebook","like",b,a])}),FB.Event.subscribe("edge.remove",function(b){_gaq.push([d+"_trackSocial","facebook","unlike",b,a])}),FB.Event.subscribe("message.send",function(b){_gaq.push([d+"_trackSocial","facebook","send",b,a])}))}catch(e){}};_ga.buildTrackerName_=function(a){return a?a+".":""}; 3 | _ga.trackTwitter=function(a,c){var d=_ga.buildTrackerName_(c);try{twttr&&twttr.events&&twttr.events.bind&&twttr.events.bind("tweet",function(b){if(b){var c;b.target&&"IFRAME"==b.target.nodeName&&(c=_ga.extractParamFromUri_(b.target.src,"url"));_gaq.push([d+"_trackSocial","twitter","tweet",c,a])}})}catch(e){}};_ga.extractParamFromUri_=function(a,c){if(a){var a=a.split("#")[0],d=a.split("?");if(1!=d.length)for(var d=decodeURI(d[1]),c=c+"=",d=d.split("&"),e=0,b;b=d[e];++e)if(0===b.indexOf(c))return unescape(b.split("=")[1])}}; 4 | jQuery&&jQuery("a").click(function(){var a=jQuery(this).attr("href");null!=a&&(a.match(/^http/i)&&!a.match(document.domain)?_gaq.push(["_trackEvent","outgoing","click",a]):a.match(/\.(doc|pdf|xls|ppt|zip|txt|vsd|vxd|js|css|rar|exe|wma|mov|avi|wmv|mp3)$/i)?_gaq.push(["_trackEvent","download","click",a]):a.match(/^mailto:/i)&&_gaq.push(["_trackEvent","mailto","click",a]))}); -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/browser-specific/gecko/editor_gecko.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /* 7 | editor_gecko.css 8 | ================== 9 | 10 | This file contains styles to used by all Gecko based browsers (Firefox) only. 11 | */ 12 | 13 | /* Base it on editor.css, overriding it with styles defined in this file. */ 14 | @import "../../components/editor"; 15 | 16 | .cke_bottom 17 | { 18 | padding-bottom: 3px; 19 | } 20 | 21 | .cke_combo_text 22 | { 23 | margin-bottom: -1px; 24 | margin-top: 1px; 25 | } 26 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/browser-specific/ie/dialog_ie.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /* 7 | dialog_ie.css 8 | =============== 9 | 10 | This file contains styles to used by all versions of Internet Explorer only. 11 | */ 12 | 13 | /* Base it on dialog.css, overriding it with styles defined in this file. */ 14 | @import "../../dialog/dialog"; 15 | 16 | /* IE doesn't leave enough padding in text input for cursor to blink in RTL. (#6087) */ 17 | .cke_rtl input.cke_dialog_ui_input_text, 18 | .cke_rtl input.cke_dialog_ui_input_password 19 | { 20 | padding-right: 2px; 21 | } 22 | /* Compensate the padding added above on container. */ 23 | .cke_rtl div.cke_dialog_ui_input_text, 24 | .cke_rtl div.cke_dialog_ui_input_password 25 | { 26 | padding-left: 2px; 27 | } 28 | .cke_rtl div.cke_dialog_ui_input_text { 29 | padding-right: 1px; 30 | } 31 | 32 | .cke_rtl .cke_dialog_ui_vbox_child, 33 | .cke_rtl .cke_dialog_ui_hbox_child, 34 | .cke_rtl .cke_dialog_ui_hbox_first, 35 | .cke_rtl .cke_dialog_ui_hbox_last 36 | { 37 | padding-right: 2px !important; 38 | } 39 | 40 | 41 | /* Disable filters for HC mode. */ 42 | .cke_hc .cke_dialog_title, 43 | .cke_hc .cke_dialog_footer, 44 | .cke_hc a.cke_dialog_tab, 45 | .cke_hc a.cke_dialog_ui_button, 46 | .cke_hc a.cke_dialog_ui_button:hover, 47 | .cke_hc a.cke_dialog_ui_button_ok, 48 | .cke_hc a.cke_dialog_ui_button_ok:hover 49 | { 50 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 51 | } 52 | 53 | /* Remove border from dialog field wrappers in HC 54 | to avoid double borders. */ 55 | .cke_hc div.cke_dialog_ui_input_text, 56 | .cke_hc div.cke_dialog_ui_input_password, 57 | .cke_hc div.cke_dialog_ui_input_textarea, 58 | .cke_hc div.cke_dialog_ui_input_select, 59 | .cke_hc div.cke_dialog_ui_input_file 60 | { 61 | border: 0; 62 | } 63 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/browser-specific/ie/editor_ie.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /* 7 | editor_ie.css 8 | =============== 9 | 10 | This file contains styles to used by all versions of Internet Explorer only. 11 | */ 12 | 13 | /* Base it on editor.css, overriding it with styles defined in this file. */ 14 | @import "../../components/editor"; 15 | 16 | a.cke_button_disabled, 17 | 18 | /* Those two are to overwrite the gradient filter since we cannot have both of them. */ 19 | a.cke_button_disabled:hover, 20 | a.cke_button_disabled:focus, 21 | a.cke_button_disabled:active 22 | { 23 | filter: alpha(opacity = 30); 24 | } 25 | 26 | /* PNG Alpha Transparency Fix For IE<9 */ 27 | .cke_button_disabled .cke_button_icon 28 | { 29 | filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#00ffffff, endColorstr=#00ffffff); 30 | } 31 | 32 | .cke_button_off:hover, 33 | .cke_button_off:focus, 34 | .cke_button_off:active 35 | { 36 | filter: alpha(opacity = 100); 37 | } 38 | 39 | .cke_combo_disabled .cke_combo_inlinelabel, 40 | .cke_combo_disabled .cke_combo_open 41 | { 42 | filter: alpha(opacity = 30); 43 | } 44 | 45 | .cke_toolbox_collapser 46 | { 47 | border: 1px solid #a6a6a6; 48 | } 49 | 50 | .cke_toolbox_collapser .cke_arrow 51 | { 52 | margin-top: 1px; 53 | } 54 | 55 | /* Gradient filters must be removed for HC mode to reveal the background. */ 56 | .cke_hc .cke_top, 57 | .cke_hc .cke_bottom, 58 | .cke_hc .cke_combo_button, 59 | .cke_hc a.cke_combo_button:hover, 60 | .cke_hc a.cke_combo_button:focus, 61 | .cke_hc .cke_toolgroup, 62 | .cke_hc .cke_button_on, 63 | .cke_hc a.cke_button_off:hover, 64 | .cke_hc a.cke_button_off:focus, 65 | .cke_hc a.cke_button_off:active, 66 | .cke_hc .cke_toolbox_collapser, 67 | .cke_hc .cke_toolbox_collapser:hover, 68 | .cke_hc .cke_panel_grouptitle 69 | { 70 | filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); 71 | } 72 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/browser-specific/ie7/dialog_ie7.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /* 7 | dialog_ie7.css 8 | =============== 9 | 10 | This file contains styles to used by Internet Explorer 7 only. 11 | */ 12 | 13 | /* Base it on dialog_ie.css, overriding it with styles defined in this file. */ 14 | @import "../../dialog/dialog"; 15 | 16 | .cke_dialog_title 17 | { 18 | /* gradient fix */ 19 | zoom: 1; 20 | } 21 | 22 | .cke_dialog_footer 23 | { 24 | /* IE7 ignores footer's outline. Use border instead. */ 25 | border-top: 1px solid #bfbfbf; 26 | } 27 | 28 | /* IE7 needs position static #6806 */ 29 | .cke_dialog_footer_buttons 30 | { 31 | position: static; 32 | } 33 | 34 | /* IE7 crops the bottom pixels of footer buttons (#9491) */ 35 | .cke_dialog_footer_buttons a.cke_dialog_ui_button 36 | { 37 | vertical-align: top; 38 | } 39 | 40 | /* IE7 margin loose on float. */ 41 | .cke_dialog .cke_resizer_ltr 42 | { 43 | padding-left: 4px; 44 | } 45 | .cke_dialog .cke_resizer_rtl 46 | { 47 | padding-right: 4px; 48 | } 49 | 50 | /* IE7 doesn't support box-sizing and therefore we cannot 51 | have sexy inputs which go well with the layout. */ 52 | .cke_dialog_ui_input_text, 53 | .cke_dialog_ui_input_password, 54 | .cke_dialog_ui_input_textarea, 55 | .cke_dialog_ui_input_select 56 | { 57 | padding: 0 !important; 58 | } 59 | 60 | /* Predefined border to avoid visual size change impact. */ 61 | .cke_dialog_ui_checkbox_input, 62 | .cke_dialog_ui_ratio_input, 63 | .cke_btn_reset, 64 | .cke_btn_locked, 65 | .cke_btn_unlocked 66 | { 67 | border: 1px solid transparent !important; 68 | } 69 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/browser-specific/ie8/dialog_ie8.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /* 7 | dialog_ie8.css 8 | =============== 9 | 10 | This file contains styles to used by Internet Explorer 8 only. 11 | */ 12 | 13 | /* Base it on dialog_ie.css, overriding it with styles defined in this file. */ 14 | @import "../../dialog/dialog"; 15 | 16 | /* Without the following, IE8 cannot compensate footer button thick borders 17 | on :focus/:active. */ 18 | a.cke_dialog_ui_button_ok:focus span, 19 | a.cke_dialog_ui_button_ok:active span, 20 | a.cke_dialog_ui_button_cancel:focus span, 21 | a.cke_dialog_ui_button_cancel:active span 22 | { 23 | display: block; 24 | } 25 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/browser-specific/ie8/editor_ie8.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /* 7 | editor_ie8.css 8 | =============== 9 | 10 | This file contains styles to used by Internet Explorer 8 only. 11 | */ 12 | 13 | /* Base it on editor_ie.css, overriding it with styles defined in this file. */ 14 | @import "../../components/editor"; 15 | 16 | .cke_toolbox_collapser .cke_arrow 17 | { 18 | border-width:4px; 19 | } 20 | .cke_toolbox_collapser.cke_toolbox_collapser_min .cke_arrow 21 | { 22 | border-width:3px; 23 | } 24 | .cke_toolbox_collapser .cke_arrow 25 | { 26 | margin-top: 0; 27 | } 28 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/browser-specific/iequirks/dialog_iequirks.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /* 7 | dialog_ie7.css 8 | =============== 9 | 10 | This file contains styles to used by Internet Explorer in 11 | Quirks mode only. 12 | */ 13 | 14 | /* Base it on dialog_ie.css, overriding it with styles defined in this file. */ 15 | @import "../../dialog/dialog"; 16 | 17 | /* [IE7-8] Filter on footer causes background artifacts when opening dialog. */ 18 | .cke_dialog_footer 19 | { 20 | filter: ""; 21 | } 22 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/browser-specific/iequirks/editor_iequirks.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /* 7 | editor_iequirks.css 8 | =============== 9 | 10 | This file contains styles to used by all versions of Internet Explorer 11 | in Quirks mode only. 12 | */ 13 | 14 | /* Base it on editor_ie.css, overriding it with styles defined in this file. */ 15 | @import "../../components/editor"; 16 | 17 | .cke_top, 18 | .cke_contents, 19 | .cke_bottom 20 | { 21 | width: 100%; /* hasLayout = true */ 22 | } 23 | 24 | .cke_button_arrow 25 | { 26 | font-size: 0; /* Set minimal font size, so arrow won't be streched by the text that doesn't exist. */ 27 | } 28 | 29 | /* Bring back toolbar buttons in RTL. */ 30 | 31 | .cke_rtl .cke_toolgroup, 32 | .cke_rtl .cke_toolbar_separator, 33 | .cke_rtl .cke_button, 34 | .cke_rtl .cke_button *, 35 | .cke_rtl .cke_combo, 36 | .cke_rtl .cke_combo *, 37 | .cke_rtl .cke_path_item, 38 | .cke_rtl .cke_path_item *, 39 | .cke_rtl .cke_path_empty 40 | { 41 | float: none; 42 | } 43 | 44 | .cke_rtl .cke_toolgroup, 45 | .cke_rtl .cke_toolbar_separator, 46 | .cke_rtl .cke_combo_button, 47 | .cke_rtl .cke_combo_button *, 48 | .cke_rtl .cke_button, 49 | .cke_rtl .cke_button_icon, 50 | { 51 | display: inline-block; 52 | vertical-align: top; 53 | } 54 | 55 | /* Otherwise formatting toolbar breaks when editing a mixed content (#9893). */ 56 | .cke_rtl .cke_button_icon 57 | { 58 | float: none; 59 | } 60 | 61 | .cke_resizer 62 | { 63 | width: 10px; 64 | } 65 | 66 | .cke_source 67 | { 68 | white-space: normal; 69 | } 70 | 71 | .cke_bottom 72 | { 73 | position: static; /* Without this bottom space doesn't move when resizing editor. */ 74 | } 75 | 76 | .cke_colorbox 77 | { 78 | font-size: 0; /* Set minimal font size, so button won't be streched by the text that doesn't exist. */ 79 | } 80 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/browser-specific/opera/dialog_opera.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /* 7 | dialog_opera.css 8 | =============== 9 | 10 | This file contains styles to used by all versions of Opera only. 11 | */ 12 | 13 | /* Base it on dialog.css, overriding it with styles defined in this file. */ 14 | @import "../../dialog/dialog"; 15 | 16 | /* Opera has problem with box-shadow and td with border-collapse: collapse */ 17 | /* inset shadow is mis-aligned */ 18 | .cke_dialog_footer 19 | { 20 | display: block; 21 | height: 38px; 22 | } 23 | 24 | .cke_ltr .cke_dialog_footer > * 25 | { 26 | float:right; 27 | } 28 | .cke_rtl .cke_dialog_footer > * 29 | { 30 | float:left; 31 | } 32 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/components/_elementspath.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /* 7 | elementspath.css (part of editor.css) 8 | ======================================= 9 | 10 | This file styles the "Elements Path", whith is the list of element names 11 | present at the the bottom bar of the CKEditor interface. 12 | 13 | The following is a visual representation of its main elements: 14 | 15 | +-- .cke_path ---------------------------------------------------------------+ 16 | | +-- .cke_path_item ----+ +-- .cke_path_item ----+ +-- .cke_path_empty ---+ | 17 | | | | | | | | | 18 | | +----------------------+ +----------------------+ +----------------------+ | 19 | +----------------------------------------------------------------------------+ 20 | */ 21 | 22 | /* The box that holds the entire elements path. */ 23 | .cke_path { 24 | float: left; 25 | margin: -2px 0 2px; 26 | } 27 | 28 | /* Each item of the elements path. */ 29 | .cke_path_item, 30 | /* Empty element available at the end of the elements path, to help us keeping 31 | the proper box size when the elements path is empty. */ 32 | .cke_path_empty { 33 | display: inline-block; 34 | float: left; 35 | padding: 3px 4px; 36 | margin-right: 2px; 37 | cursor: default; 38 | text-decoration: none; 39 | outline: 0; 40 | border: 0; 41 | color: #4c4c4c; 42 | font-weight: bold; 43 | font-size: 11px; 44 | } 45 | 46 | .cke_rtl { 47 | .cke_path, .cke_path_item, .cke_path_empty { 48 | float: right; 49 | } 50 | } 51 | 52 | /* The items are elements, so we define its hover states here. */ 53 | a.cke_path_item { 54 | &:hover, &:focus, &:active { 55 | background-color: #bfbfbf; 56 | color: #333; 57 | border-radius: 2px; 58 | } 59 | } 60 | 61 | .cke_hc a.cke_path_item { 62 | &:hover, &:focus, &:active { 63 | border: 2px solid; 64 | padding: 1px 2px; 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/components/_presets.scss: -------------------------------------------------------------------------------- 1 | /* 2 | Copyright (c) 2003-2014, CKSource - Frederico Knabben. All rights reserved. 3 | For licensing, see LICENSE.md or http://ckeditor.com/license 4 | */ 5 | 6 | /* "Source" button label */ 7 | .cke_button__source_label, 8 | .cke_button__sourcedialog_label { 9 | display: inline; 10 | } 11 | 12 | /* "Font Size" combo width */ 13 | .cke_combo__fontsize .cke_combo_text { 14 | width: 30px; 15 | } 16 | 17 | /* "Font Size" panel size */ 18 | .cke_combopanel__fontsize { 19 | width: 120px; 20 | } 21 | 22 | /* Editable regions */ 23 | .cke_source { 24 | font-family: 'Courier New' , Monospace; 25 | font-size: small; 26 | background-color: #fff; 27 | white-space: pre; 28 | } 29 | 30 | .cke_wysiwyg_frame, .cke_wysiwyg_div { 31 | background-color: #fff; 32 | } 33 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/config/_colors.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Colors 3 | 4 | This file is exclusively intended for setting up variables 5 | Never add styles directly to this file 6 | ========================================================================== */ 7 | 8 | // Grays 9 | // ------------------------- 10 | 11 | $gray-darker: #333; 12 | $gray-dark: #555; 13 | $gray: #aaa; 14 | $gray-light: #ddd; 15 | $gray-lighter: #eee; 16 | 17 | // Primary 18 | // ------------------------- 19 | $primary: #428bca; 20 | $primary-light: #92bce0; 21 | $primary-lighter: #e1edf7; 22 | 23 | // Forms 24 | // ------------------------- 25 | $form-blue: #66afe9; 26 | 27 | // Blues 28 | // ------------------------- 29 | $blue-dark: #2274c9; 30 | $blue-dark-hover: #1e68b4; 31 | $blue: #3F8EDF; 32 | $blue-hover: #2981db; 33 | 34 | // States 35 | // ------------------------- 36 | 37 | $success: $blue; 38 | $success-hover: $blue-hover; 39 | $success-border: $blue-dark; 40 | $success-border-hover: $blue-dark-hover; 41 | 42 | $warning: #f0ad4e; 43 | $danger: #d9534f; 44 | $info: #5bc0de; 45 | 46 | // Scaffolding 47 | // ------------------------- 48 | 49 | $body-bg: #fff; 50 | $text-color: $gray-darker; 51 | 52 | // Links 53 | // ------------------------- 54 | 55 | $link-color: $primary; 56 | $link-hover-color: darken($link-color, 15%); 57 | 58 | // Hr border color 59 | // ------------------------- 60 | 61 | $hr-border: $gray-light; 62 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/config/_config.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Config 3 | 4 | This file is exclusively intended for setting up imports 5 | Never add styles directly to this file 6 | ========================================================================== */ 7 | 8 | @import "colors"; 9 | @import "defaults"; 10 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/ckeditor/skins/bootstrapck/scss/config/_defaults.scss: -------------------------------------------------------------------------------- 1 | /* ========================================================================== 2 | Defaults 3 | 4 | This file is exclusively intended for setting up variables 5 | Never add styles directly to this file 6 | ========================================================================== */ 7 | 8 | // Border radius 9 | // ------------------------- 10 | 11 | $border-radius: 4px; 12 | 13 | 14 | // Forms 15 | // ------------------------- 16 | 17 | %input-style { 18 | background-color: #fff; 19 | outline: none; 20 | width: 100%; 21 | *width: 95%; 22 | height: 30px; 23 | padding: 4px 10px; 24 | border: 1px solid $hr-border; 25 | border-radius: $border-radius; 26 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075); 27 | box-shadow: inset 0 1px 1px rgba(0,0,0,.075); 28 | 29 | -moz-box-sizing: border-box; 30 | -webkit-box-sizing: border-box; 31 | box-sizing: border-box; 32 | &:focus { 33 | border-color: $form-blue; 34 | -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba($form-blue,.6); 35 | box-shadow: inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba($form-blue,.6); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /Resources/Public/JavaScript/main.js: -------------------------------------------------------------------------------- 1 | $(document).ready(function() { 2 | 3 | languageskills.init(); 4 | 5 | $("#tx-ats-languageform").on("click", '*[data-action="addLanguage"]', function(e) { 6 | languageskills.addLanguageFormPart(); 7 | }); 8 | 9 | $("#tx-ats-languageform").on("click", '*[data-action="removeLanguage"]', function(e) { 10 | languageskills.removeLanguage($(e.target).data("language")); 11 | }); 12 | 13 | $("#tx-ats-fileupload").on("change", function(e){ 14 | if (e.target.value != "") { 15 | $("#tx-ats-fileupload-button").show(); 16 | } 17 | else { 18 | $("#tx-ats-fileupload-button").hide(); 19 | } 20 | }); 21 | }); 22 | -------------------------------------------------------------------------------- /ext_conf_template.txt: -------------------------------------------------------------------------------- 1 | # cat=basic/enable; type=boolean; label=Enable legacy backend TS (configure everything in plugin.tx_ats instead of separate settings in module.tx_ats) 2 | enableLegacyBackendTS = 1 3 | 4 | # cat=basic/enable; type=boolean; label=Create a matching backend user group when a new job is added 5 | createJobGroups = 0 6 | 7 | # cat=basic/enable; type=string; label=Naming schema for job groups (%s will be filled with job number) 8 | jobGroupPattern = bms_jobno_%s 9 | 10 | # cat=basic/enable; type=string; label=Name of the group to use as a template (you need to create a group with this name!) 11 | jobGroupTemplate = bms department template %s 12 | 13 | # cat=basic/enable; type=boolean; label=Use backend user credentials in emails (name and mail address) 14 | useBackendUserCredentialsInEmails = 1 15 | 16 | # cat=basic/enable; type=string; label=Default email sender (if empty, system settings are used) 17 | emailDefaultSenderName = 18 | 19 | # cat=basic/enable; type=string; label=Default email address (if empty, system settings are used) 20 | emailDefaultSenderAddress = 21 | 22 | fileHandling { 23 | # cat=advanced/file; type=string; label=Allowed upload file extensions 24 | allowedFileExtensions = png,gif,jpg,tif,pdf,xls,xlsx,doc,docx,rtf,txt,zip,rar 25 | 26 | # cat=advanced/file; type=options[rename=rename,replace=replace,cancel=cancel]; label=Upload conflict mode 27 | conflictMode = rename 28 | 29 | # cat=advanced/file; type=string; label=Upload folder for application assets 30 | uploadFolder = 1:/tx_ats/ 31 | } 32 | 33 | # cat=extra/enable; type=boolean; label=Send out an automated application receipt acknowledgement E-mail to the applicant (you need to specify the template below!) 34 | sendAutoAcknowledge = 0 35 | 36 | # cat=extra/enable; type=integer; label=E-mail Template UID for the receipt acknowledgement 37 | autoAcknowledgeTemplate = 38 | -------------------------------------------------------------------------------- /ext_emconf.php: -------------------------------------------------------------------------------- 1 | 'ATS: Applicant Tracking System', 5 | 'description' => 'Highly customizable enterprise application tracking system based on Extbase & Fluid. Provides management of job offers and job applications, allowing for complex job application workflows involving numerous roles as they are required in environments of universities as well as private and public companies.', 6 | 'category' => 'plugin', 7 | 'author' => 'Clara Brocar, Saskia Schreiber, Stefan Schuett, Francisco Seipel', 8 | 'author_email' => 'sschuett@pagemachine.de', 9 | 'author_company' => 'Pagemachine AG', 10 | 'state' => 'stable', 11 | 'clearCacheOnLoad' => 0, 12 | 'version' => '2.0.1', 13 | 'constraints' => [ 14 | 'depends' => [ 15 | 'php' => '7.2.0-7.4.99', 16 | 'typo3' => '9.5.0-9.5.99', 17 | 'static_info_tables' => '6.7.0-6.99.99', 18 | ], 19 | 'suggests' => [ 20 | 'hairu' => '2.0.0-0.0.0', 21 | ], 22 | ], 23 | 'createDirs' => 'fileadmin/tx_ats', 24 | ]; 25 | -------------------------------------------------------------------------------- /ext_icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pagemachine/ats/e68ca86853e3f6103e3b79c82cbd49364b446860/ext_icon.png --------------------------------------------------------------------------------