From 19985dbb8c0aa66dc4bf7905abc1148de909097d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Anton=20Luka=20=C5=A0ijanec?= Date: Tue, 11 Jan 2022 12:35:47 +0100 Subject: prvi-commit --- admin/survey/script/DragDrop/dragdropInAdmin.js | 1625 ++ admin/survey/script/DragDrop/dragdropboxInAdmin.js | 951 ++ admin/survey/script/GDPR.js | 207 + admin/survey/script/HeatMap/HeatMapCanvasAdmin.js | 308 + .../survey/script/HeatMap/HeatMapSumarnikPopUp.js | 354 + admin/survey/script/HeatMap/heatmap.js | 725 + admin/survey/script/HeatMap/heatmap_admin.js | 91 + admin/survey/script/ImageHotSpot/imageHotspot.js | 365 + admin/survey/script/ImageHotSpot/imagemap.js | 741 + .../ImageHotSpot/imagemap_question_editor.js | 40 + admin/survey/script/LanguageTechnology.js | 1415 ++ admin/survey/script/LanguageTechnology_old.js | 841 + admin/survey/script/Maps/CenterControl.js | 138 + admin/survey/script/Maps/VnaprejMarkers.js | 621 + admin/survey/script/Maps/mapInBox.js | 343 + admin/survey/script/Maps/markerclusterer.js | 1318 ++ admin/survey/script/SurveyConnect.js | 5 + admin/survey/script/aapor.js | 229 + admin/survey/script/appendMerge.js | 206 + admin/survey/script/branching.js | 3447 ++++ admin/survey/script/break.js | 87 + admin/survey/script/cReport.js | 640 + admin/survey/script/calendar/calendar-setup.js | 200 + admin/survey/script/calendar/calendar.css | 273 + admin/survey/script/calendar/calendar.gif | Bin 0 -> 364 bytes admin/survey/script/calendar/calendar.js | 1806 ++ admin/survey/script/calendar/calendar_gray.gif | Bin 0 -> 963 bytes admin/survey/script/calendar/lang/calendar-en.js | 127 + admin/survey/script/calendar/lang/calendar-si.js | 99 + admin/survey/script/charts.js | 742 + admin/survey/script/collectData.js | 32 + admin/survey/script/conditionProfiles.js | 110 + admin/survey/script/crosstab.js | 274 + admin/survey/script/custom_column_label_option.js | 89 + .../script/custom_column_label_respondent.js | 91 + admin/survey/script/customizeImageView.js | 338 + admin/survey/script/dataSettingProfiles.js | 196 + admin/survey/script/datatables/Slovenian.json | 25 + .../survey/script/datatables/buttons.colVis.min.js | 10 + .../survey/script/datatables/buttons.flash.min.js | 39 + .../survey/script/datatables/buttons.html5.min.js | 35 + .../survey/script/datatables/buttons.print.min.js | 9 + .../script/datatables/dataTables.buttons.min.js | 42 + .../script/datatables/dataTables.responsive.min.js | 48 + .../script/datatables/dataTables.select.min.js | 38 + admin/survey/script/datatables/datetime-moment.js | 74 + .../script/datatables/jquery.dataTables.min.css | 1 + .../script/datatables/jquery.dataTables.min.js | 180 + admin/survey/script/datatables/jszip.min.js | 14 + admin/survey/script/datatables/moment.min.js | 7 + admin/survey/script/datatables/pdfmake.min.js | 3 + admin/survey/script/datatables/vfs_fonts.js | 6 + admin/survey/script/datepicker.js | 58 + admin/survey/script/dostop.js | 575 + admin/survey/script/folders.js | 108 + admin/survey/script/inspect.js | 80 + admin/survey/script/invitations.js | 1763 ++ admin/survey/script/jquery/colorbox/LICENSE.md | 21 + admin/survey/script/jquery/colorbox/README.md | 620 + admin/survey/script/jquery/colorbox/bower.json | 40 + admin/survey/script/jquery/colorbox/colorbox.ai | 1811 ++ admin/survey/script/jquery/colorbox/colorbox.css | 69 + .../jquery/colorbox/i18n/jquery.colorbox-ar.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-bg.js | 16 + .../jquery/colorbox/i18n/jquery.colorbox-bn.js | 16 + .../jquery/colorbox/i18n/jquery.colorbox-ca.js | 13 + .../jquery/colorbox/i18n/jquery.colorbox-cs.js | 16 + .../jquery/colorbox/i18n/jquery.colorbox-da.js | 16 + .../jquery/colorbox/i18n/jquery.colorbox-de.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-es.js | 13 + .../jquery/colorbox/i18n/jquery.colorbox-et.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-fa.js | 18 + .../jquery/colorbox/i18n/jquery.colorbox-fi.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-fr.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-gl.js | 13 + .../jquery/colorbox/i18n/jquery.colorbox-gr.js | 16 + .../jquery/colorbox/i18n/jquery.colorbox-he.js | 16 + .../jquery/colorbox/i18n/jquery.colorbox-hr.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-hu.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-id.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-it.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-ja.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-kr.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-lt.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-lv.js | 16 + .../jquery/colorbox/i18n/jquery.colorbox-my.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-nl.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-no.js | 16 + .../jquery/colorbox/i18n/jquery.colorbox-pl.js | 16 + .../jquery/colorbox/i18n/jquery.colorbox-pt-BR.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-ro.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-ru.js | 16 + .../jquery/colorbox/i18n/jquery.colorbox-si.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-sk.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-sr.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-sv.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-tr.js | 19 + .../jquery/colorbox/i18n/jquery.colorbox-uk.js | 16 + .../jquery/colorbox/i18n/jquery.colorbox-zh-CN.js | 15 + .../jquery/colorbox/i18n/jquery.colorbox-zh-TW.js | 15 + .../script/jquery/colorbox/images/border1.png | Bin 0 -> 629 bytes .../script/jquery/colorbox/images/border2.png | Bin 0 -> 112 bytes .../script/jquery/colorbox/images/close_map.png | Bin 0 -> 19065 bytes .../colorbox/images/close_map_transparent.png | Bin 0 -> 1365 bytes .../script/jquery/colorbox/images/loading.gif | Bin 0 -> 5187 bytes .../jquery/colorbox/images/original_loading.gif | Bin 0 -> 6244 bytes .../script/jquery/colorbox/jquery.colorbox-min.js | 6 + .../script/jquery/colorbox/jquery.colorbox.js | 1105 ++ admin/survey/script/jquery/colorbox/package.json | 29 + admin/survey/script/jquery/farbtastic.js | 349 + admin/survey/script/jquery/jquery-1.12.4.min.js | 5 + admin/survey/script/jquery/jquery-1.2.6.min.js | 32 + admin/survey/script/jquery/jquery-1.3.2.min.js | 19 + admin/survey/script/jquery/jquery-migrate-1.4.1.js | 752 + .../script/jquery/jquery-migrate-1.4.1.min.js | 2 + .../survey/script/jquery/jquery.canvasAreaDraw.js | 259 + .../script/jquery/jquery.chosen/chosen-sprite.png | Bin 0 -> 559 bytes .../survey/script/jquery/jquery.chosen/chosen.css | 384 + .../script/jquery/jquery.chosen/chosen.jquery.js | 1018 ++ .../jquery/jquery.chosen/chosen.jquery.min.js | 10 + admin/survey/script/jquery/jquery.imagemapster.js | 4564 +++++ .../script/jquery/jquery.qtip-1.0.0-beta4.min.js | 310 + .../survey/script/jquery/jquery.qtip-1.0.0-rc3.js | 2154 +++ .../script/jquery/jquery.qtip-1.0.0-rc3.min.js | 15 + admin/survey/script/jquery/jquery.qtip-1.0.js | 2000 +++ .../jquery/jquery.searchabledropdown-1.0.7.min.js | 26 + .../css/jquery.selectbox.css | 76 + .../jquery.selectbox-0.6.1/img/bg-TextField.gif | Bin 0 -> 627 bytes .../img/bg-TextFieldFocused.gif | Bin 0 -> 659 bytes .../img/bg-TextFieldFocused_gray.gif | Bin 0 -> 1414 bytes .../img/bg-TextField_gray.gif | Bin 0 -> 1383 bytes .../img/lay-selectMoreButton.gif | Bin 0 -> 613 bytes .../img/lay-selectMoreButtonHover.gif | Bin 0 -> 350 bytes .../img/lay-selectMoreButtonHover_gray.gif | Bin 0 -> 946 bytes .../img/lay-selectMoreButton_gray.gif | Bin 0 -> 995 bytes .../jquery.selectbox-0.6.1/jquery-1.2.6.pack.js | 11 + .../jquery.selectbox-0.6.1.js | 201 + .../jquery.selectbox-0.6.1.pack.js | 14 + admin/survey/script/jquery/jquery.timer.js | 75 + .../jquery-ui-slider-pips.css | 388 + .../jquery.ui.Slider.Pips/jquery-ui-slider-pips.js | 579 + .../jquery-ui-slider-pips.min.js | 3 + .../jquery.ui.touch-punch.min.js | 11 + .../timepicker/jquery-ui-timepicker-addon.css | 30 + .../timepicker/jquery-ui-timepicker-addon.js | 2291 +++ .../script/jquery/ui-1.11.4/jquery-1.11.3.min.js | 5 + .../jquery/ui-1.11.4/jquery-migrate-1.2.1.min.js | 2 + .../ui/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 212 bytes .../ui/images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 208 bytes .../ui/images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 335 bytes .../ui/images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 207 bytes .../ui/images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 262 bytes .../ui/images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 262 bytes .../ui/images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 332 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 280 bytes .../ui/images/ui-icons_222222_256x240.png | Bin 0 -> 6922 bytes .../ui/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4549 bytes .../ui/images/ui-icons_454545_256x240.png | Bin 0 -> 6992 bytes .../ui/images/ui-icons_888888_256x240.png | Bin 0 -> 6999 bytes .../ui/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4549 bytes .../script/jquery/ui-1.11.4/ui/jquery-ui.css | 1225 ++ .../survey/script/jquery/ui-1.11.4/ui/jquery-ui.js | 16617 +++++++++++++++++++ .../script/jquery/ui-1.11.4/ui/jquery-ui.min.css | 7 + .../script/jquery/ui-1.11.4/ui/jquery-ui.min.js | 13 + .../jquery/ui-1.11.4/ui/jquery-ui.structure.css | 833 + .../ui-1.11.4/ui/jquery-ui.structure.min.css | 5 + .../script/jquery/ui-1.11.4/ui/jquery-ui.theme.css | 410 + .../jquery/ui-1.11.4/ui/jquery-ui.theme.min.css | 5 + .../script/jquery/ui-1.8.10/js/jquery-1.4.4.min.js | 167 + .../ui-1.8.10/js/jquery-ui-1.8.10.custom.min.js | 782 + .../ui-1.8.18/js/images/animated-overlay.gif | Bin 0 -> 1738 bytes .../ui-bg_diagonals-thick_18_b81900_40x40.png | Bin 0 -> 418 bytes .../ui-bg_diagonals-thick_20_666666_40x40.png | Bin 0 -> 312 bytes .../js/images/ui-bg_flat_10_000000_40x100.png | Bin 0 -> 205 bytes .../js/images/ui-bg_flat_75_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../js/images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 178 bytes .../js/images/ui-bg_glass_100_f6f6f6_1x400.png | Bin 0 -> 262 bytes .../js/images/ui-bg_glass_100_fdf5ce_1x400.png | Bin 0 -> 348 bytes .../js/images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes .../js/images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 207 bytes .../js/images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 111 bytes .../js/images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes .../images/ui-bg_gloss-wave_35_f6a828_500x100.png | Bin 0 -> 5815 bytes .../ui-bg_highlight-soft_100_eeeeee_1x100.png | Bin 0 -> 278 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 101 bytes .../ui-bg_highlight-soft_75_ffe45c_1x100.png | Bin 0 -> 328 bytes .../js/images/ui-icons_222222_256x240.png | Bin 0 -> 6922 bytes .../js/images/ui-icons_228ef1_256x240.png | Bin 0 -> 4549 bytes .../js/images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../js/images/ui-icons_ef8c08_256x240.png | Bin 0 -> 4549 bytes .../js/images/ui-icons_ffd27a_256x240.png | Bin 0 -> 4549 bytes .../js/images/ui-icons_ffffff_256x240.png | Bin 0 -> 6299 bytes .../script/jquery/ui-1.8.18/js/jquery-1.7.1.min.js | 4 + .../ui-1.8.18/js/jquery-ui-1.8.18.custom.min.js | 356 + .../script/jquery/ui-1.8.18/js/jquery-ui.css | 565 + .../script/jquery/ui-1.8.2/js/jquery-1.4.2.min.js | 154 + .../ui-1.8.2/js/jquery-ui-1.8.2.custom.min.js | 1012 ++ .../script/jquery/ui-1.8.4/js/jquery-1.4.2.min.js | 154 + .../jquery/ui-1.8.4/js/jquery-1.4.2.mod.min.js | 493 + .../ui-1.8.4/js/jquery-ui-1.8.4.custom.min.js | 763 + .../script/jquery/ui.drag_drop_selectable.js | 264 + admin/survey/script/jquery/ui.draggable.orig.js | 789 + admin/survey/script/js-lang.php | 236 + admin/survey/script/library.js | 256 + admin/survey/script/means.js | 172 + admin/survey/script/missingProfiles.js | 157 + admin/survey/script/missingValues.js | 132 + admin/survey/script/mobile.js | 75 + admin/survey/script/mobileMenu/zeynep.min.js | 9 + admin/survey/script/multiCrosstabs.js | 285 + admin/survey/script/narocila.js | 326 + admin/survey/script/notifications.js | 109 + admin/survey/script/onload.js | 45 + admin/survey/script/postProcess.js | 787 + admin/survey/script/prevajanje.js | 72 + admin/survey/script/profileManager.js | 50 + admin/survey/script/progressBar.js | 128 + admin/survey/script/quota.js | 185 + admin/survey/script/recode.js | 161 + admin/survey/script/script.js | 5477 ++++++ admin/survey/script/script_analiza.js | 1577 ++ admin/survey/script/select2/select2.min.css | 1 + admin/survey/script/select2/select2.min.js | 1 + admin/survey/script/simpleMailInvitation.js | 41 + admin/survey/script/skupine.js | 51 + admin/survey/script/slider.js | 431 + admin/survey/script/slideshow.js | 43 + admin/survey/script/statistika.js | 151 + admin/survey/script/statusProfiles.js | 210 + admin/survey/script/surveyCondition.js | 81 + admin/survey/script/surveyList.js | 167 + admin/survey/script/sweetalert/sweetalert.css | 932 ++ admin/survey/script/sweetalert/sweetalert.min.js | 1 + admin/survey/script/telefon.js | 31 + admin/survey/script/telephone.js | 243 + admin/survey/script/themes.js | 227 + admin/survey/script/timeProfiles.js | 131 + admin/survey/script/trak.js | 196 + admin/survey/script/trak_respondent.js | 69 + admin/survey/script/ttest.js | 128 + admin/survey/script/uporabniki_custom.js | 18 + admin/survey/script/variableProfiles.js | 251 + admin/survey/script/vprasanje.js | 1640 ++ admin/survey/script/vprasanjeInline.js | 1133 ++ admin/survey/script/zankaProfiles.js | 115 + admin/survey/script/zoom.js | 194 + 246 files changed, 83400 insertions(+) create mode 100644 admin/survey/script/DragDrop/dragdropInAdmin.js create mode 100644 admin/survey/script/DragDrop/dragdropboxInAdmin.js create mode 100644 admin/survey/script/GDPR.js create mode 100644 admin/survey/script/HeatMap/HeatMapCanvasAdmin.js create mode 100644 admin/survey/script/HeatMap/HeatMapSumarnikPopUp.js create mode 100644 admin/survey/script/HeatMap/heatmap.js create mode 100644 admin/survey/script/HeatMap/heatmap_admin.js create mode 100644 admin/survey/script/ImageHotSpot/imageHotspot.js create mode 100644 admin/survey/script/ImageHotSpot/imagemap.js create mode 100644 admin/survey/script/ImageHotSpot/imagemap_question_editor.js create mode 100644 admin/survey/script/LanguageTechnology.js create mode 100644 admin/survey/script/LanguageTechnology_old.js create mode 100644 admin/survey/script/Maps/CenterControl.js create mode 100644 admin/survey/script/Maps/VnaprejMarkers.js create mode 100644 admin/survey/script/Maps/mapInBox.js create mode 100644 admin/survey/script/Maps/markerclusterer.js create mode 100644 admin/survey/script/SurveyConnect.js create mode 100644 admin/survey/script/aapor.js create mode 100644 admin/survey/script/appendMerge.js create mode 100644 admin/survey/script/branching.js create mode 100644 admin/survey/script/break.js create mode 100644 admin/survey/script/cReport.js create mode 100644 admin/survey/script/calendar/calendar-setup.js create mode 100644 admin/survey/script/calendar/calendar.css create mode 100644 admin/survey/script/calendar/calendar.gif create mode 100644 admin/survey/script/calendar/calendar.js create mode 100644 admin/survey/script/calendar/calendar_gray.gif create mode 100644 admin/survey/script/calendar/lang/calendar-en.js create mode 100644 admin/survey/script/calendar/lang/calendar-si.js create mode 100644 admin/survey/script/charts.js create mode 100644 admin/survey/script/collectData.js create mode 100644 admin/survey/script/conditionProfiles.js create mode 100644 admin/survey/script/crosstab.js create mode 100644 admin/survey/script/custom_column_label_option.js create mode 100644 admin/survey/script/custom_column_label_respondent.js create mode 100644 admin/survey/script/customizeImageView.js create mode 100644 admin/survey/script/dataSettingProfiles.js create mode 100644 admin/survey/script/datatables/Slovenian.json create mode 100644 admin/survey/script/datatables/buttons.colVis.min.js create mode 100644 admin/survey/script/datatables/buttons.flash.min.js create mode 100644 admin/survey/script/datatables/buttons.html5.min.js create mode 100644 admin/survey/script/datatables/buttons.print.min.js create mode 100644 admin/survey/script/datatables/dataTables.buttons.min.js create mode 100644 admin/survey/script/datatables/dataTables.responsive.min.js create mode 100644 admin/survey/script/datatables/dataTables.select.min.js create mode 100644 admin/survey/script/datatables/datetime-moment.js create mode 100644 admin/survey/script/datatables/jquery.dataTables.min.css create mode 100644 admin/survey/script/datatables/jquery.dataTables.min.js create mode 100644 admin/survey/script/datatables/jszip.min.js create mode 100644 admin/survey/script/datatables/moment.min.js create mode 100644 admin/survey/script/datatables/pdfmake.min.js create mode 100644 admin/survey/script/datatables/vfs_fonts.js create mode 100644 admin/survey/script/datepicker.js create mode 100644 admin/survey/script/dostop.js create mode 100644 admin/survey/script/folders.js create mode 100644 admin/survey/script/inspect.js create mode 100644 admin/survey/script/invitations.js create mode 100644 admin/survey/script/jquery/colorbox/LICENSE.md create mode 100644 admin/survey/script/jquery/colorbox/README.md create mode 100644 admin/survey/script/jquery/colorbox/bower.json create mode 100644 admin/survey/script/jquery/colorbox/colorbox.ai create mode 100644 admin/survey/script/jquery/colorbox/colorbox.css create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-ar.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-bg.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-bn.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-ca.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-cs.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-da.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-de.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-es.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-et.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-fa.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-fi.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-fr.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-gl.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-gr.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-he.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-hr.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-hu.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-id.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-it.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-ja.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-kr.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-lt.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-lv.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-my.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-nl.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-no.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-pl.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-pt-BR.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-ro.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-ru.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-si.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-sk.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-sr.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-sv.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-tr.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-uk.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-zh-CN.js create mode 100644 admin/survey/script/jquery/colorbox/i18n/jquery.colorbox-zh-TW.js create mode 100644 admin/survey/script/jquery/colorbox/images/border1.png create mode 100644 admin/survey/script/jquery/colorbox/images/border2.png create mode 100644 admin/survey/script/jquery/colorbox/images/close_map.png create mode 100644 admin/survey/script/jquery/colorbox/images/close_map_transparent.png create mode 100644 admin/survey/script/jquery/colorbox/images/loading.gif create mode 100644 admin/survey/script/jquery/colorbox/images/original_loading.gif create mode 100644 admin/survey/script/jquery/colorbox/jquery.colorbox-min.js create mode 100644 admin/survey/script/jquery/colorbox/jquery.colorbox.js create mode 100644 admin/survey/script/jquery/colorbox/package.json create mode 100644 admin/survey/script/jquery/farbtastic.js create mode 100644 admin/survey/script/jquery/jquery-1.12.4.min.js create mode 100644 admin/survey/script/jquery/jquery-1.2.6.min.js create mode 100644 admin/survey/script/jquery/jquery-1.3.2.min.js create mode 100644 admin/survey/script/jquery/jquery-migrate-1.4.1.js create mode 100644 admin/survey/script/jquery/jquery-migrate-1.4.1.min.js create mode 100644 admin/survey/script/jquery/jquery.canvasAreaDraw.js create mode 100644 admin/survey/script/jquery/jquery.chosen/chosen-sprite.png create mode 100644 admin/survey/script/jquery/jquery.chosen/chosen.css create mode 100644 admin/survey/script/jquery/jquery.chosen/chosen.jquery.js create mode 100644 admin/survey/script/jquery/jquery.chosen/chosen.jquery.min.js create mode 100644 admin/survey/script/jquery/jquery.imagemapster.js create mode 100644 admin/survey/script/jquery/jquery.qtip-1.0.0-beta4.min.js create mode 100644 admin/survey/script/jquery/jquery.qtip-1.0.0-rc3.js create mode 100644 admin/survey/script/jquery/jquery.qtip-1.0.0-rc3.min.js create mode 100644 admin/survey/script/jquery/jquery.qtip-1.0.js create mode 100644 admin/survey/script/jquery/jquery.searchabledropdown-1.0.7.min.js create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/css/jquery.selectbox.css create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/img/bg-TextField.gif create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/img/bg-TextFieldFocused.gif create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/img/bg-TextFieldFocused_gray.gif create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/img/bg-TextField_gray.gif create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/img/lay-selectMoreButton.gif create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/img/lay-selectMoreButtonHover.gif create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/img/lay-selectMoreButtonHover_gray.gif create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/img/lay-selectMoreButton_gray.gif create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/jquery-1.2.6.pack.js create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/jquery.selectbox-0.6.1.js create mode 100644 admin/survey/script/jquery/jquery.selectbox-0.6.1/jquery.selectbox-0.6.1.pack.js create mode 100644 admin/survey/script/jquery/jquery.timer.js create mode 100644 admin/survey/script/jquery/jquery.ui.Slider.Pips/jquery-ui-slider-pips.css create mode 100644 admin/survey/script/jquery/jquery.ui.Slider.Pips/jquery-ui-slider-pips.js create mode 100644 admin/survey/script/jquery/jquery.ui.Slider.Pips/jquery-ui-slider-pips.min.js create mode 100644 admin/survey/script/jquery/jquery_touch_punch/jquery.ui.touch-punch.min.js create mode 100644 admin/survey/script/jquery/timepicker/jquery-ui-timepicker-addon.css create mode 100644 admin/survey/script/jquery/timepicker/jquery-ui-timepicker-addon.js create mode 100644 admin/survey/script/jquery/ui-1.11.4/jquery-1.11.3.min.js create mode 100644 admin/survey/script/jquery/ui-1.11.4/jquery-migrate-1.2.1.min.js create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-icons_222222_256x240.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-icons_2e83ff_256x240.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-icons_454545_256x240.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-icons_888888_256x240.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/images/ui-icons_cd0a0a_256x240.png create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/jquery-ui.css create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/jquery-ui.js create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/jquery-ui.min.css create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/jquery-ui.min.js create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/jquery-ui.structure.css create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/jquery-ui.structure.min.css create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/jquery-ui.theme.css create mode 100644 admin/survey/script/jquery/ui-1.11.4/ui/jquery-ui.theme.min.css create mode 100644 admin/survey/script/jquery/ui-1.8.10/js/jquery-1.4.4.min.js create mode 100644 admin/survey/script/jquery/ui-1.8.10/js/jquery-ui-1.8.10.custom.min.js create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/animated-overlay.gif create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_diagonals-thick_18_b81900_40x40.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_diagonals-thick_20_666666_40x40.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_flat_10_000000_40x100.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_flat_75_aaaaaa_40x100.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_glass_100_f6f6f6_1x400.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_glass_100_fdf5ce_1x400.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_gloss-wave_35_f6a828_500x100.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_highlight-soft_100_eeeeee_1x100.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-bg_highlight-soft_75_ffe45c_1x100.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-icons_222222_256x240.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-icons_228ef1_256x240.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-icons_454545_256x240.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-icons_ef8c08_256x240.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-icons_ffd27a_256x240.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/images/ui-icons_ffffff_256x240.png create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/jquery-1.7.1.min.js create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/jquery-ui-1.8.18.custom.min.js create mode 100644 admin/survey/script/jquery/ui-1.8.18/js/jquery-ui.css create mode 100644 admin/survey/script/jquery/ui-1.8.2/js/jquery-1.4.2.min.js create mode 100644 admin/survey/script/jquery/ui-1.8.2/js/jquery-ui-1.8.2.custom.min.js create mode 100644 admin/survey/script/jquery/ui-1.8.4/js/jquery-1.4.2.min.js create mode 100644 admin/survey/script/jquery/ui-1.8.4/js/jquery-1.4.2.mod.min.js create mode 100644 admin/survey/script/jquery/ui-1.8.4/js/jquery-ui-1.8.4.custom.min.js create mode 100644 admin/survey/script/jquery/ui.drag_drop_selectable.js create mode 100644 admin/survey/script/jquery/ui.draggable.orig.js create mode 100644 admin/survey/script/js-lang.php create mode 100644 admin/survey/script/library.js create mode 100644 admin/survey/script/means.js create mode 100644 admin/survey/script/missingProfiles.js create mode 100644 admin/survey/script/missingValues.js create mode 100644 admin/survey/script/mobile.js create mode 100644 admin/survey/script/mobileMenu/zeynep.min.js create mode 100644 admin/survey/script/multiCrosstabs.js create mode 100644 admin/survey/script/narocila.js create mode 100644 admin/survey/script/notifications.js create mode 100644 admin/survey/script/onload.js create mode 100644 admin/survey/script/postProcess.js create mode 100644 admin/survey/script/prevajanje.js create mode 100644 admin/survey/script/profileManager.js create mode 100644 admin/survey/script/progressBar.js create mode 100644 admin/survey/script/quota.js create mode 100644 admin/survey/script/recode.js create mode 100644 admin/survey/script/script.js create mode 100644 admin/survey/script/script_analiza.js create mode 100644 admin/survey/script/select2/select2.min.css create mode 100644 admin/survey/script/select2/select2.min.js create mode 100644 admin/survey/script/simpleMailInvitation.js create mode 100644 admin/survey/script/skupine.js create mode 100644 admin/survey/script/slider.js create mode 100644 admin/survey/script/slideshow.js create mode 100644 admin/survey/script/statistika.js create mode 100644 admin/survey/script/statusProfiles.js create mode 100644 admin/survey/script/surveyCondition.js create mode 100644 admin/survey/script/surveyList.js create mode 100644 admin/survey/script/sweetalert/sweetalert.css create mode 100644 admin/survey/script/sweetalert/sweetalert.min.js create mode 100644 admin/survey/script/telefon.js create mode 100644 admin/survey/script/telephone.js create mode 100644 admin/survey/script/themes.js create mode 100644 admin/survey/script/timeProfiles.js create mode 100644 admin/survey/script/trak.js create mode 100644 admin/survey/script/trak_respondent.js create mode 100644 admin/survey/script/ttest.js create mode 100644 admin/survey/script/uporabniki_custom.js create mode 100644 admin/survey/script/variableProfiles.js create mode 100644 admin/survey/script/vprasanje.js create mode 100644 admin/survey/script/vprasanjeInline.js create mode 100644 admin/survey/script/zankaProfiles.js create mode 100644 admin/survey/script/zoom.js (limited to 'admin/survey/script') diff --git a/admin/survey/script/DragDrop/dragdropInAdmin.js b/admin/survey/script/DragDrop/dragdropInAdmin.js new file mode 100644 index 0000000..65d1799 --- /dev/null +++ b/admin/survey/script/DragDrop/dragdropInAdmin.js @@ -0,0 +1,1625 @@ +//za predogled in quick view oz. quick edit Drag and drop postavitve vprasanj +//var refresh = 0; +var refresh = []; +var skatlastOkvir = []; + +var draggableOnDroppable = []; //spremenljivka, ki belezi prisotnost odgovora na ustrezni povrsini pri Drag and Drop +var maxDragDrop = []; //spremenljivka, ki belezi max stevilo moznih odgovorov + +var draggableOverDroppable = []; //spremenljivka, ki belezi prisotnost odgovora nad ustreznim okvirjem pri Drag and Drop +var default_var_height_1 = []; //belezi zacetno vrednost visine celotnega vprasanja po usklajevanju visine glede na prisotne kategorije odgovorov +var data_after_refresh = []; //belezi, ali je uporabnik refresh-al stran oz. se vraca na stran +var frame_total_height_right = []; //belezi visino okvirjev desnega bloka @ drag and drop grids +var draggableOver = []; +var last_vre_id = []; //belezi vre_id zadnjega draggable, ki smo ga premikali @ Drag and drop +var vre_id_global = []; //belezi vre_id trenutne kategorije odgovorov @ Drag and drop +var last_indeks = []; //belezi indeks zadnjega okvirja, kjer je bil draggable @ Drag and drop +var indeks_global = []; //belezi trenutni indeks okvirja @ Drag and drop +var last_drop = []; //belezi indeks zadnjega okvirja, kjer je bil draggable droppan @ Drag and drop +var num_grids_global = []; //belezi stevilo gridov za doloceno vprasanje +var draggable_global = []; +var cat_pushed = []; //belezi, ali je kategorijo odrinila druga kategorija odgovora @ Drag and drop + +function DraggableAdmin(vre_id){ + //console.log('Hura!'); + var default_cat_height = 15; + var final_height = 0; + var cat_text_length = $('#vre_id_'+vre_id).html().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora + //console.log('Število znakov v kategoriji: '+cat_text_length); + + var num_of_br = $('#vre_id_'+vre_id+' br').length; //hrani stevilo br oz. ročnih vnosov novih vrstic + //console.log('Število br v kategoriji: '+num_of_br); + + var num_imgs = $('#vre_id_'+vre_id+' img').length; //hrani stevilo img v interesiranem div-u + //console.log('Število slik v kategoriji: '+num_imgs); + + var max_cat_text_length = 30; //hrani max stevilo dolzine teksta do katerega ni potrebno samodejno dodati
+ + if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs == 0) ){//ce je tekst daljsi od 30 znakov, nima breakov ali slik dodaj
+ + var txt = $('#vre_id_'+vre_id).html(); + //console.log(txt); + var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); + //console.log(txt_alt); + $('#vre_id_'+vre_id).html(txt_alt); + final_height = final_height + default_cat_height + 25; + //console.log(final_height); + } + + if (num_imgs != 0){ // ce imamo sliko + var img_height = 0; + var max_width = $('.ranking').width(); + var img = $('#vre_id_'+vre_id+' img'); + var img_width = img.width(); + var img_height = img.height(); + if (img_width > max_width){ + img_height = (img_height / img_width) * max_width; + $('#vre_id_'+vre_id).children('img').css({width: max_width}); + $('#vre_id_'+vre_id).children('img').css({height: img_height}); + //$('#vre_id_'+vre_id).css({height: height}); + } + + //console.log("img_height: "+img_height); + if(img_height > 25){ //ce je visina slike vecja od default visine kategorije + final_height = final_height + img_height; + } + } + + if(num_of_br != 0){ + var br_height = num_of_br*25; + + if (num_imgs == 0){ + final_height = final_height + default_cat_height + br_height; + } + else{ + final_height = final_height + br_height; + } + + + //console.log(final_height); + if( (img_height < 25) && (img_height != 0) ){ + final_height = final_height + img_height; + } + } + if (final_height != 0){ + $('#vre_id_'+vre_id).css({'height':final_height}); //dodaj atributu style še novo višino + + //TO-DO: ureditev visine celotnega vprasanja - kodo je potrebno prenesti nekam drugam, kjer bo se dalo globlano oceniti visino spremenljivke + //var default_var_height = 271; //default visina celotnega vprasanja + //var final_var_height = default_var_height + img_height; + //$('#vre_id_'+vre_id).css({'height':final_var_height}); + } +} + + +//************funkcija, ki skrbi za inicializacijo draggable elementov in delovanje drag and drop ob dvojnem kliku +function init_GridDraggable(spremenljivka, vre_id, grids){ + data_after_refresh[spremenljivka] = false; + frame_total_height_right[spremenljivka] = 0; + last_vre_id[spremenljivka] = 0; + vre_id_global[spremenljivka] = 0; + last_indeks[spremenljivka] = 0; + last_drop[vre_id] = 0; + indeks_global[spremenljivka] = 0; + num_grids_global[spremenljivka] = grids;//stevilo okvirjev, pomembno za revert kategorije odgovora + cat_pushed[spremenljivka] = false; + draggable_global[vre_id] = 0; + //spremenljvke, ce se ne uporablja polj - konec + + //spremenljivke kot polja polj + draggableOnDroppable[vre_id] = new Array(2); //inicializacija spremenljivke, ki belezi, ali je trenutna kategorija odgovora prisotna kontejnerju/okvirju + draggableOverDroppable[vre_id] = new Array(2); + for(i = 1; i <= num_grids_global[spremenljivka]; i++){ + draggableOnDroppable[vre_id][i] = false; + draggableOverDroppable[vre_id][i] = false; + } +} + +//************funkcija, ki skrbi za inicializacijo draggable elementov in delovanje drag and drop ob dvojnem kliku +function Draggable(tip, spremenljivka, vre_id, ajax, anketa, site_url, usr_id, other, mobile, quick_view, preview_spremenljivka){ + var top_cat = -1; + var left_cat = -1; + if (mobile == 0 || mobile == 2){ + top_cat = -6; + left_cat = -6; + } + + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).addClass('drag_and_drop').detach().appendTo('#half_frame_dropping_'+spremenljivka) //zeleni element s kategorijami dodaj v zacetnem kontejnerju + .draggable({ //ureditev, da je element draggable + cursor: 'move', + //revert: true, + revert: function(socketObj) + { + if(typeof checkBranching == 'function'){ + checkBranching(); + } + //if false then no socket object drop occurred, reverting happens + if(socketObj === false){ + //ce je tip kategorije en odgovor in smo premaknili kategorijo odgovora od levega okvirja proti desnemu + if (tip == 1 && draggableOver[spremenljivka] == true){ + $('#half2_frame_dropping_'+spremenljivka).toggleClass('frame_dropping_hover_right_single');//sprozi preklop sloga levega okvirja + //console.log('Yo!'); + } + draggableOver[spremenljivka] = false; + return true; + } + else { + return false; + } + }, + //stack: '#half_'+spremenljivka+' div', + stack: '#half2_'+spremenljivka+' div', + opacity: 0.9, + containment: '#prestavljanje_'+spremenljivka, + }) + .dblclick(function() { //ob dvojnem kliku na kategorijo, to prenesi kot odgovor na ustrezno mesto + var vre_id = $(this).attr('value'); + var id_parent = $(this).parent().attr('id'); //hrani id bloka v katerem se trenutno nahaja mozen odgovor + var other = $(this).attr('missing'); //spremenljivka, ki hrani vrednost atributa missing + var other_present = $('#half2_frame_dropping_'+spremenljivka).children('div').attr('missing'); //missing, ki je trenutno v desnem bloku + + if(typeof checkBranching == 'function'){ + checkBranching(); + } + + if (id_parent == 'half_frame_dropping_'+spremenljivka){ //ce je trenuten odgovor v levem bloku + if( ( (tip == 1 && other == 0) ) || ( (tip == 2) && (other_present != 0) ) || ( (other != 0) ) ) {//ce je preneseni odgovor tipa 1 ("radio") in ni missing-a, + //ALI ce je preneseni odgovor tipa 2 ("checkbox") in je missing prisoten v desnem bloku ALI ce je preneseni odgovor missing + //sprazni blok z odgovori oz. prenesi morebitne obstojece odgovore nazaj v levi blok in zbrisi trenutni (missing) odgovor iz baze + if (ajax){ //zbrisi trenutne odgovore iz baze + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop2_data', {spremenljivka: spremenljivka, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke + } + $('.ui-draggable[name="vrednost_'+spremenljivka+'"]').appendTo('#half_frame_dropping_'+spremenljivka);//prenesi skupino odgovorov v levi (zacetni) blok + } + + $('#half2_frame_dropping_'+spremenljivka).prepend(this); //pripopaj na zacetek seznama odgovorov (desni blok) izbrani missing + if (ajax){ //vnesi missing odgovor v bazo + $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop1', {spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id}); //post-aj potrebne podatke + } + + draggableOver[spremenljivka] = false; + draggableOnDroppable[vre_id] = true; //kategorija odgovora je v desnem okviru + + } //konec if za levi blok + else if(id_parent == 'half2_frame_dropping_'+spremenljivka){ //ce je trenuten odgovor v desnem bloku + + if(other != 0 || other == 0){ + var vre_id = $(this).attr('value'); + $('#half_frame_dropping_'+spremenljivka).prepend(this); //pripopaj prenesno na zacetek seznama kategorij + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).draggable( 'option', 'appendTo', '#half_frame_dropping_'+spremenljivka); + $('#vrednost_if_'+usr_id).remove(); + if (ajax){ + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop1_data', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke + } + } + +/* if(other == 0){ + var vre_id = $(this).attr('value'); + $('#half_'+spremenljivka).prepend(this); //pripopaj preneseno na zacetek seznama kategorij + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).draggable( 'option', 'appendTo', '#half_'+spremenljivka); + $('#vrednost_if_'+usr_id).remove(); + if (ajax){ + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop1_data', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke + } + } */ + draggableOver[spremenljivka] == false; //nismo vec v over dogodku + draggableOnDroppable[vre_id] = false; + } //konec if za desni blok + + }); + + //dodajanje atributov, ki so prisotni pri vseh ostalih kategorijah odgovorov + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).attr({'value':vre_id, 'name':'vrednost_'+spremenljivka, 'onclick':'checkBranching();', 'missing':other}); + + if(quick_view || preview_spremenljivka){ //ce je le predogled + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).draggable( "option", "disabled", true ); //disable-anje drag and drop + } + + + //ureditev visine kategorije (div) glede na prisotnost slike ali vecvrsticnega teksta + var default_cat_height = 15; + var final_height = 0; + //var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).text().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora + var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora + //console.log('Število znakov v kategoriji: '+cat_text_length); + + var num_of_br = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' br').length; //hrani stevilo br oz. ročnih vnosov novih vrstic + //console.log('Število br v kategoriji: '+num_of_br); + + var num_imgs = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').length; //hrani stevilo img v interesiranem div-u + //console.log('Število slik v kategoriji: '+num_imgs); + + var max_cat_text_length = 30; //hrani max stevilo dolzine teksta do katerega ni potrebno samodejno dodati
+ + + if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs == 0) ){//ce je tekst daljsi od 30 znakov, nima breakov ali slik dodaj
+ //if( (cat_text_length > max_cat_text_length) ){//ce je tekst daljsi od 35 znakov dodaj
+ //console.log('Tekst je daljši od '+max_cat_text_length+' znakov'); + //var txt2 = txt1.slice(0, 3) + "bar" + txt1.slice(3); + //var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).text(); + var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(); + //console.log(txt); + var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); + //console.log(txt_alt); + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(txt_alt); + final_height = final_height + default_cat_height + 25; + //console.log(final_height); + } + /* else if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs != 0) ){//ce je tekst daljsi od 35 znakov, nima breakov, ima pa sliko dodaj
+ + var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(); + console.log(txt); + var n_img_start = txt.search(""); + console.log(n_img_start); + console.log(n_img_end); + //var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); + //console.log(txt_alt); + //$('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(txt_alt); + //final_height = final_height + default_cat_height + 25; + //console.log(final_height); + + } */ + + + if (num_imgs != 0){ // ce imamo sliko + + var img_height = 0; + //var max_width = $('.ranking').width(); + var max_width = 230; + var img = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img'); + var img_width = img.width(); + //console.log("img_width: "+img_width); + + var img_height = img.height(); + //console.log("img_height: "+img_height); + + if (img_width > max_width){ + img_height = (img_height / img_width) * max_width; + img.css({width: max_width}); + img.css({height: img_height}); + //$('#vre_id_'+vre_id).css({height: height}); + //console.log("Vecji od max width"); + } + + //ureditev mobilne različice prikazovanja slik znotraj kategorij odgovorov +/* if (mobile == 1){ //ce je mobilnik + img_height = (img_height / img_width) * 100; + img_width = 100; + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').attr('style', 'margin: auto !important'); //dodaj atribut + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').css({'height':img_height,'width':img_width}); //ustrezno spremeni visino in sirino slike + } */ + //ureditev mobilne različice prikazovanja - konec + + //console.log("img_height: "+img_height); + if(img_height > 25){ //ce je visina slike vecja od default visine kategorije + final_height = final_height + img_height; + } + + + + //ureditev visine variable_holder, ki je znotraj okvirja !!!!!!!!!! + //$('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').css({'height':(final_height + img_height)+'px'}); + } + + if(num_of_br != 0){ + var br_height = num_of_br*25; + + if (num_imgs == 0){ + final_height = final_height + default_cat_height + br_height; + } + else{ + final_height = final_height + br_height; + } + + + //console.log(final_height); + if( (img_height < 25) && (img_height != 0) ){ + final_height = final_height + img_height; + } + } + if (final_height != 0){ + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).css({'height':final_height}); //dodaj style atributu še novo višino za levi blok + } + //ureditev visine kategorije (div) glede na prisotnost slike ali vecvrsticnega teksta - konec + + +} +//*********************************************************************** + +//*********funkcija, ki skrbi za delovanje drag and drop funkcionalnosti +function DragDropDelovanje(tip, spremenljivka, site_url, ajax, anketa, usr_id, num_of_cats, mobile){ + //*****za mobilne naprave + var top_cat = -1; + var left_cat = -1; + var default_var_height = 290; + if (mobile == 0 || mobile == 2){ + top_cat = -6; + left_cat = -6; + default_var_height = 220; //default visina celotnega vprasanja @ mobile == 0 (desktop) in mobile == 2 (tablica) + } + + //********************* + //ureditev visine celotnega vprasanja, ce je ta visja od default-a******************************************************************* + var cat_total_height_left = 0; //hrani trenutno visino levega okvirja kategorij odgovorov + var cat_margin_left = 0; + var cat_max_height = 0; //hrani trenutno najvecjo visino trenutne kategorije + var cat_default_inline_text_length = 16; //default dolzina teksta v eni vrstici kategorij odgovorov + //var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').height(); //visina naslova vprasanja (besedila vprasanja) + var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').outerHeight(true); //visina naslova vprasanja (besedila vprasanja) + var visinaPaddingovMarginovVprasanja = $('#spremenljivka_'+spremenljivka).outerHeight(true) - $('#spremenljivka_'+spremenljivka).height(); + var visinaPaddingovMarginovHolder = $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').outerHeight(true) - $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(); + var pomoznoBesediloHeight = 40; //visina besedila "Razpoložljive kategorije:" + //ureditev visine puscice med blokoma okvirjev + var variable_holder_height = $('#spremenljivka_'+spremenljivka+' .variable_holder').height(); //visina variable_holder, potrebna za visino puscice med blokoma + $('#spremenljivka_'+spremenljivka+' td.middle img').css({'top' : (naslov_height + variable_holder_height/2) + 'px'}); //visina puscice med blokoma okvirjev + + + if (ajax){ + //console.log('Getting data on load'); + $.get(site_url+'/main/survey/ajax.php?a=get_dragdrop1_data', {spremenljivka: spremenljivka, anketa: anketa}, function(data){ //get potrebnih podatkov za resevanje missing + + var array_length = data.length; //hrani koliko podatkov je prisotnih v polju s podatki iz baze + var vre_id = []; //polje, ki hrani id-je vrednosti vseh kategorij odgovorov interesirane spremenljivke + //var cat_total_height = 0; //hrani trenutno visino celotnega trenutnega vprasanja + + //console.log(array_length); //prikazi koliko podatkov je prisotnih v polju s podatki iz baze + for(var i = 0; i < array_length; i++){ //sprehodi se po vseh vrednostih polja vre_id + vre_id[i] = data[i]; //polje iz podatkov iz baze data[], shrani v polje vre_id[] + + var cat_height = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).height(); //visina kategorije z oznako + var cat_height_real = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).outerHeight(true); //realna visina kategorije z oznako + + //console.log('Visina '+(i + 1)+': '+cat_height_real); + + if(mobile == 1){ //ko je mobilnik, uredi velikost okvirja kategorije glede na dolzino besedila + var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).text().length; //dolzina teksta v kategoriji odgovora + //console.log("Dolžina besedila v kategoriji: "+cat_text_length); + if(cat_text_length > (cat_default_inline_text_length)*2 ){ //ce je dolzina teksta v kategoriji daljsa 2-krat vec od default (16) + //console.log("Tekst je daljši!"); + var num_of_rows = cat_text_length / cat_default_inline_text_length; + //console.log("num_of_rows: "+num_of_rows); + cat_height_real = cat_height_real + 25 * (num_of_rows - 2); //trenutno visino kategorije povecaj za 25 + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).css({'height':(cat_height_real)+'px'}); //spremeni visino kategorije + } + } + + cat_total_height_left = cat_total_height_left + cat_height_real; //izracun koncne realne visine levega okvirja + + if (cat_max_height < cat_height){ //ce je maksimalna visina kategorije manjsa od trenutne visine kategorije + cat_max_height = cat_height; //naj bo vrednost max visine kategorije trenutna visina kategorije + } + + } + + var koncnaVisinaVprasanja = cat_total_height_left + naslov_height + pomoznoBesediloHeight + visinaPaddingovMarginovVprasanja + visinaPaddingovMarginovHolder*4; + + $('#spremenljivka_'+spremenljivka).css({'height':(koncnaVisinaVprasanja)+'px'}); + + $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').css({'height':(koncnaVisinaVprasanja*0.85)+'px'}); //visina variable_holder + + //*************urejanje visine levega okvirja kategorij odgovorov + $('#half_frame_dropping_'+spremenljivka).css({'height':(cat_total_height_left)+'px'});//visina levega okvirja + + //*************urejanje visine desnega okvirja glede na visino levega okvirja, ki hrani kategorije odgovorov + if (tip != 1){ //ce nimamo kategorije vec odgovorov + $('#half2_frame_dropping_'+spremenljivka).css({'height':(cat_total_height_left)+'px'}); //visina desnega okvirja + } + else if (tip == 1){ //ce imamo kategorije en odgovor + $('#half2_frame_dropping_'+spremenljivka).css({'height':(cat_max_height)+'px'});//visina desnega okvirja + } + + default_var_height = $('#spremenljivka_'+spremenljivka).height(); + //console.log("default_var_height konec: "+default_var_height); + + //urejanje visine na kateri se nahaja gumb za ponastavljanje vprašanja + ResetButtonHeight(spremenljivka); + + }, "json"); + } + //*********************************************************************************************************************************** + $('#half_frame_dropping_'+spremenljivka) + .droppable({ + //hoverClass: 'frame_ranking_hover', + hoverClass: 'frame_dropping_hover', + drop: function (event, ui) { + if(typeof checkBranching == 'function'){ + checkBranching(); + } + //$(this).prepend(ui.draggable); //pripopaj na zacetek seznama odgovorov (desni blok) + //ui.draggable.position( { of: $(this), my: 'left top', at: 'left top' } ); //pozicijoniraj levi zgornji del elementa z odgovorom na levem zgornjem delu droppable + //ui.draggable.offset( { of: $(this), my: 'left top', at: 'left top' } ); + + //$(ui.draggable).detach().css({top: -6,left: -6}).appendTo(this); + $(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); + //$(ui.draggable).addClass('drag_and_drop').detach().appendTo(this); + $(ui.draggable).addClass('drag_and_drop_right'); + + //brisi podatke prenesenega odgovora iz baze + var vre_id = ui.draggable.attr('value'); + if (ajax){ + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop1_data', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke za brisanje + } + draggableOver[spremenljivka] == false; //nismo vec v over dogodku + draggableOnDroppable[vre_id] = false; + + }, + out: function (event, ui) { //ob izhodu iz drop zone + //answer_coming[spremenljivka] = true; + //console.log('out'); + $(ui.draggable).removeClass('drag_and_drop_right'); + $(ui.draggable).addClass('drag_and_drop'); + } + }); + + //var stevilo_zdaj = $('#half2_frame_dropping_'+spremenljivka).children('div').attr('missing'); + //var other_present = $(this).children('div').attr('missing'); + //console.log(stevilo_zdaj); + + //if (tip == 1 && ($('#half2_frame_dropping_'+spremenljivka).children('.ranking').length != 0) ){ //ce je tip vprasanja kategorije en odgovor + if (tip == 1){ //ce je tip vprasanja kategorije en odgovor + $('#half2_frame_dropping_'+spremenljivka) + .droppable({ + //hoverClass: 'frame_ranking_hover', + hoverClass: 'frame_dropping_hover_right_single', + //accept: '#half_'+spremenljivka+' div', + drop: function (event, ui) { //ob dropanju odgovora v desni blok + //console.log("Drop"); + if(typeof checkBranching == 'function'){ + checkBranching(); + } + + var vre_id = ui.draggable.attr('value'); + var other = ui.draggable.attr('missing'); //spremenljivka, ki hrani vrednost atributa missing + var other_present = $(this).children('div').attr('missing'); //missing, ki je trenutno v desnem bloku + var cat_right = $(this).children('div').css('height'); //ali je prisotna kaksna kategorija v desnem okvirju? Undefined = ne + + + //ce je preneseni odgovor tipa 1 ("radio") in ni missing-a, + //ALI ce je preneseni odgovor tipa 2 ("checkbox") in je missing prisoten v desnem bloku + //ALI ce je preneseni odgovor missing + //sprazni blok z odgovori oz. prenesi morebitne obstojece odgovore nazaj v levi blok + if( ( (tip == 1 && other == 0 && cat_right) ) || ( (tip == 2) && (other_present != 0) ) || ( (other != 0) ) ) { + $('.ui-draggable[name="vrednost_'+spremenljivka+'"]').appendTo('#half_frame_dropping_'+spremenljivka);//prenesi skupino odgovorov v levi (zacetni) blok + } + + //pozicioniranje draggable na pravo mesto + $(ui.draggable).removeClass('drag_and_drop');//odstranimo, ker je nepotrebno na levi strani + $(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); //najprej pozicioniramo na zacasni lokaciji + $(ui.draggable).addClass('drag_and_drop_right');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo + //pozicioniranje draggable na pravo mesto - konec + + if (ajax){ + //post-aj potrebne podatke za belezenje v bazo + //in zbrisi trenutno hranjene podatke, ce je to potrebno + $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop1', {other_present: other_present, other: other, cat_right: cat_right, tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id}); + } + draggableOver[spremenljivka] = false; //zabelezi, da draggable ni vec over + draggableOnDroppable[vre_id] = true; //kategorija odgovora je v desnem okviru + }, + over: function (event, ui) { //ob izhodu iz drop zone + draggableOver[spremenljivka] = true; //zabelezi, da je draggable over + if(typeof checkBranching == 'function'){ + checkBranching(); + } + }, + out: function (event, ui) { //ob izhodu iz drop zone + draggableOver[spremenljivka] = false; //zabelezi, da draggable ni vec over + $(ui.draggable).removeClass('drag_and_drop_right'); //odstranimo slog, ker drugace se draggable ne vidi, ko ga premikamo +/* var vre_id = ui.draggable.attr('value'); + if (ajax){ + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop1_data', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke za brisanje + } */ + } + }); + } + //else if( tip == 2 || (tip == 1 && ($('#half2_frame_dropping_'+spremenljivka).children('.ranking').length == 0) ) ) { //ce je tip vprasanja kategorije vec odgovorov in pri kategorije en odgovor ni nobenih odgovorov v desnem okvirju + else if( tip == 2 ) { //ce je tip vprasanja kategorije vec odgovorov in pri kategorije en odgovor ni nobenih odgovorov v desnem okvirju + $('#half2_frame_dropping_'+spremenljivka) + .droppable({ + //hoverClass: 'frame_ranking_hover', + hoverClass: 'frame_dropping_hover', + //accept: '#half_'+spremenljivka+' div', + drop: function (event, ui) { //ob dropanju odgovora v desni blok + if(typeof checkBranching == 'function'){ + checkBranching(); + } + //console.log("Drop"); + + var vre_id = ui.draggable.attr('value'); + var other = ui.draggable.attr('missing'); //spremenljivka, ki hrani vrednost atributa missing + var other_present = $(this).children('div').attr('missing'); //missing, ki je trenutno v desnem bloku + + + + if( ( (tip == 2) && (other_present != 0) ) || ( (other != 0) ) ) { + //ce je preneseni odgovor tipa 2 ("checkbox") in je missing prisoten v desnem bloku + //ALI ce je preneseni odgovor missing + //sprazni blok z odgovori oz. prenesi morebitne obstojece odgovore nazaj v levi blok + $('.ui-draggable[name="vrednost_'+spremenljivka+'"]').appendTo('#half_frame_dropping_'+spremenljivka);//prenesi skupino odgovorov v desni (zacetni) blok + } + //pozicioniranje draggable na pravo mesto + $(ui.draggable).removeClass('drag_and_drop'); //odstranimo, ker je nepotrebno na levi strani + $(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); //najprej pozicioniramo na zacasni lokaciji + $(ui.draggable).addClass('drag_and_drop_right'); //dodamo slog, ki dokoncno postavi draggable na pravo lokacijo + //pozicioniranje draggable na pravo mesto - konec + if (ajax){ + //post-aj potrebne podatke za belezenje v bazo + //in zbrisi trenutno hranjene podatke, ce je to potrebno + $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop1', {other_present: other_present, other: other, tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id}); //post-aj potrebne podatke za belezenje v bazo + } + }, + out: function (event, ui) { //ob izhodu iz drop zone + $(ui.draggable).removeClass('drag_and_drop_right'); //odstranimo slog, ker drugace se draggable ne vidi, ko ga premikamo +/* var vre_id = ui.draggable.attr('value'); + if (ajax){ + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop1_data', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa}); //post-aj potrebne podatke za brisanje + } */ + } + }); + } + +} +//************************************************************************************** +//************funkcija, ki skrbi za inicializacijo draggable elementov pri gridih +function GridDraggable(tip, spremenljivka, vre_id, ajax, anketa, site_url, usr_id, other, mobile, skatle, quick_view, preview_spremenljivka) +{ + //*****za mobilne naprave + var top_cat = -1; + var left_cat = -1; + if (mobile == 0 || mobile == 2){ + top_cat = -6; + left_cat = -6; + top_cat_right = 30; + } + //********************* + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).addClass('drag_and_drop').detach().appendTo('#half_frame_dropping_'+spremenljivka) //zeleni element s kategorijami dodaj v zacetnem kontejnerju + .draggable({ //ureditev, da je element draggable + cursor: 'move', + //revert: true, + helper: 'original', + zIndex: 100, + revert: function(socketObj) + { + if(typeof checkBranching == 'function'){ + checkBranching(); + } + var revert = false; + var cat_default_height = 37; + var cat_margin_left = 10 + 5*2 + 1*2; + //var indeks_revert_1 = last_indeks[spremenljivka]; + var last_vre_id_revert = last_vre_id[spremenljivka]; + var trenutna_vre_id_revert = vre_id_global[spremenljivka]; + //console.log("trenutna_vre_id_revert: "+trenutna_vre_id_revert); + //var indeks_revert = indeks_global[spremenljivka]; + var indeks_revert = last_drop[trenutna_vre_id_revert]; + vre_id = trenutna_vre_id_revert; + //grd_id = last_indeks[spremenljivka]; + grd_id = indeks_revert; + var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); + var trenutni_okvir = $('#half2_frame_dropping_'+last_drop[trenutna_vre_id_revert]+'_'+spremenljivka); + var draggable = draggable_global[trenutna_vre_id_revert]; + var skatle = skatlastOkvir[spremenljivka]; + //console.log("Skatle za "+spremenljivka+" so:"+skatle); + + //if false then no socket object drop occurred. + if(socketObj === false){ + //revert the peg by returning true + //console.log("Reverting!") + revert = true; + + if(tip == 6){ + //ce odgovora ni v levem okvirju (ima indeks = 0), + //ce se odgovor reverta nazaj v desni okvir + if(indeks_revert != 0){ + //oznacimo, da je trenutna kategorija odgovora v desnem okvirju + draggableOnDroppable[last_vre_id_revert][indeks_revert] = true; + //draggableOverDroppable[vre_id] = false; + draggableOverDroppable[vre_id][indeks_revert] = true; + //console.log('draggableOverDroppable['+vre_id+']['+indeks_revert+']: '+draggableOverDroppable[vre_id][indeks_revert]); + //postimajo visino + frame_and_question_height(trenutni_okvir, spremenljivka, num_grids_global[spremenljivka], cat_margin_left, cat_default_height, draggable); + //console.log("Frame and question height iz reverta"); + } + var prejsnji_okvir_kat_prisotna = []; + var stevilo_prisotnih = prejsnji_okvir.children('div').length; + //console.log("stevilo_prisotnih:"+stevilo_prisotnih); + //var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju + + for(var z = 1; z <= stevilo_prisotnih; z++){ + prejsnji_okvir_kat_prisotna[z] = prejsnji_okvir.children('div :nth-child('+z+')').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju, kateri odgovori so prisotni + //console.log("prejsnji_okvir_kat_prisotna["+z+"]: "+prejsnji_okvir_kat_prisotna[z]); + //} + //console.log("Tukaj!"); + //ce zadnje obiskani okvir je bil eden od desnih in smo startali iz levega + if(last_indeks[spremenljivka] != 0 && indeks_revert == 0){ + //spremeni velikost zadnje obiskanega desnega okvirja + //console.log("Tukaj!"); + if(prejsnji_okvir_kat_prisotna[z] === undefined){ + last_frame_height(prejsnji_okvir, spremenljivka, num_grids_global[spremenljivka], cat_margin_left, draggable_global[trenutna_vre_id_revert]); + } + last_indeks[spremenljivka] = 0; + } + //ce prejsnji okvir ni trenutni in ne revert-amo nazaj v levi okvir + if ( (last_indeks[spremenljivka] != last_drop[trenutna_vre_id_revert]) && (indeks_revert != 0) ){ + //uredi velikost okvirja + frame_height(spremenljivka, vre_id, grd_id, revert); + + //ce ni kategorije z odgovorom v okvirju + if(prejsnji_okvir_kat_prisotna[z] === undefined){ + //uredi velikost zadnje obiskanega okvirja + last_frame_height(prejsnji_okvir, spremenljivka, num_grids_global[spremenljivka], cat_margin_left, draggable_global[trenutna_vre_id_revert]); + } + + //uredi velikost celotnega vprasanja + //console.log("Uredi velikost celotnega vprašanja"); + //*******************dinamicna visina celotnega vprasanja glede na vsebino prenesenih desnih okvirjev + //var default_var_height = $('#spremenljivka_'+spremenljivka).height(); + var default_var_height = 1; + dynamic_question_height(spremenljivka, num_grids_global[spremenljivka], mobile, skatle); + //************************************ konec - dinamicna visina celotnega vprasanja glede na visino prenesenih desnih okvirjev + + } + } + + //ce so skatlasti okvirji + if(skatle){ + //console.log("Imamo skatle ob revertu"); + //$(draggable).addClass('drag_and_drop_box_right');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo + $(draggable).addClass('drag_and_drop_box_right_after_refresh');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo + var pravaVisina = calcPravaVisina(prejsnji_okvir, draggable, 0, spremenljivka, 0, 0, 1); //calcPravaVisina(okvir, draggable, indeks, spremenljivka, refresh, zapStevKategorije, revert) //visina/pozicija prenesene kategorije v desnem okvirju + //console.log("pravaVisina:"+pravaVisina); + + //ustavi animacijo revert-a, da za tem lahko takoj pozicioniramo kategorijo odgovora na pravo mesto + //$(draggable).finish(); + //$(draggable).stop(); + + //pozicioniraj kategorijo odgovora na pravo mesto + $(draggable).css({top:pravaVisina+'!important'}); + //pozicioniraj kategorijo odgovora na pravo mesto - konec + + + } + } + return true; + } + else{ + //socket object was returned, + //we can perform additional checks here if we like + //alert(socketObj.attr('id')); would work fine + //console.log(socketObj.attr('id')); + //return false so that the peg does not revert + //console.log("Success!"); + revert = false; + return false; + } + }, + stack: '#half2_'+spremenljivka+' div', + opacity: 0.9, + containment: '#spremenljivka_'+spremenljivka, + }); + + if(quick_view || preview_spremenljivka){ + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).draggable( "option", "disabled", true ); + } + + //dodajanje atributov, ki so prisotni pri vseh ostalih kategorijah odgovorov + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).attr({'reverted':false,'value':vre_id, 'name':'vrednost_'+spremenljivka, 'onclick':'checkBranching();', 'missing':other}); + + //ce je tabela vec odgovorov, rabimo clone + if(tip == 16){ + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).draggable( "option", "helper", "clone" ); + } + + //ureditev visine kategorije (div) glede na prisotnost slike ali vecvrsticnega teksta + var default_cat_height = 15; + var final_height = 0; + //var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).text().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora + var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora + //console.log('Število znakov v kategoriji: '+cat_text_length); + + var num_of_br = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' br').length; //hrani stevilo br oz. ročnih vnosov novih vrstic + //console.log('Število br v kategoriji: '+num_of_br); + + var num_imgs = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').length; //hrani stevilo img v interesiranem div-u + //console.log('Število slik v kategoriji @grids: '+num_imgs); + + var max_cat_text_length = 30; //hrani max stevilo dolzine teksta do katerega ni potrebno samodejno dodati
+ + + if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs == 0) ){//ce je tekst daljsi od 30 znakov, nima breakov ali slik dodaj
+ //if( (cat_text_length > max_cat_text_length) ){//ce je tekst daljsi od 35 znakov dodaj
+ //console.log('Tekst je daljši od '+max_cat_text_length+' znakov'); + //var txt2 = txt1.slice(0, 3) + "bar" + txt1.slice(3); + //var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).text(); + var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(); + //console.log(txt); + var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); + //console.log(txt_alt); + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(txt_alt); + final_height = final_height + default_cat_height + 25; + //console.log(final_height); + } + /* else if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs != 0) ){//ce je tekst daljsi od 35 znakov, nima breakov, ima pa sliko dodaj
+ + var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(); + console.log(txt); + var n_img_start = txt.search(""); + console.log(n_img_start); + console.log(n_img_end); + //var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); + //console.log(txt_alt); + //$('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(txt_alt); + //final_height = final_height + default_cat_height + 25; + //console.log(final_height); + + } */ + + + if (num_imgs != 0){ // ce imamo sliko + + var img_height = 0; + //var max_width = $('.ranking').width(); + var max_width = 230; + var img = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img'); + var img_width = img.width(); + //console.log("img_width: "+img_width); + + var img_height = img.height(); + //console.log("img_height: "+img_height); + + if (img_width > max_width){ + img_height = (img_height / img_width) * max_width; + img.css({width: max_width}); + img.css({height: img_height}); + //$('#vre_id_'+vre_id).css({height: height}); + //console.log("Vecji od max width"); + } + + //ureditev mobilne različice prikazovanja slik znotraj kategorij odgovorov +/* if (mobile == 1){ //ce je mobilnik + img_height = (img_height / img_width) * 100; + img_width = 100; + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').attr('style', 'margin: auto !important'); //dodaj atribut + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').css({'height':img_height,'width':img_width}); //ustrezno spremeni visino in sirino slike + } */ + //ureditev mobilne različice prikazovanja - konec + + //console.log("img_height: "+img_height); + if(img_height > 25){ //ce je visina slike vecja od default visine kategorije + final_height = final_height + img_height; + } + + + + //ureditev visine variable_holder, ki je znotraj okvirja !!!!!!!!!! + //$('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').css({'height':(final_height + img_height)+'px'}); + } + + if(num_of_br != 0){ + var br_height = num_of_br*25; + + if (num_imgs == 0){ + final_height = final_height + default_cat_height + br_height; + } + else{ + final_height = final_height + br_height; + } + + + //console.log(final_height); + if( (img_height < 25) && (img_height != 0) ){ + final_height = final_height + img_height; + } + } + if (final_height != 0){ + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).css({'height':final_height}); //dodaj style atributu še novo višino za levi blok + } + +} +//*********************************************************************** +//var cat_total_height_left = 0; //hrani trenutno visino levega okvirja kategorij odgovorov +//*********funkcija, ki skrbi za delovanje drag and drop grid funkcionalnosti +function GridDragDropDelovanje(num_grids, indeks, tip, spremenljivka, site_url, ajax, anketa, usr_id, num_of_cats, mobile, skatle){ + //var default_var_height_1 = []; + //*****za mobilne naprave + var top_cat = -1; + var left_cat = -1; + var default_var_height = 290; //default visina celotnega vprasanja + if (mobile == 0 || mobile == 2){ + top_cat = -6; + left_cat = -6; + top_cat_right = 30; + var default_var_height = 220; //default visina celotnega vprasanja + } + //********************* + //ureditev visine celotnega vprasanja, ce je ta visja od default-a******************************************************************* + //var cat_margin_left = 10 + 5*2 + 1*2; //hrani rob za ureditev visine levega okvirja = margin_spodnji + padding(spredi pa zadi) + border(spredi pa zadi) + neznanka + var cat_max_height = 0; //hrani trenutno najvecjo visino tretnutne kategorije + var cat_default_height = 37; + //var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').height(); //visina naslova vprasanja (besedila vprasanja) + var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').outerHeight(true); //visina naslova vprasanja (besedila vprasanja) + var visinaPaddingovMarginovVprasanja = $('#spremenljivka_'+spremenljivka).outerHeight(true) - $('#spremenljivka_'+spremenljivka).height(); + var visinaPaddingovMarginovHolder = $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').outerHeight(true) - $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(); + var pomoznoBesediloHeight = 40; //visina besedila "Razpoložljive kategorije:" + var cat_default_inline_text_length = 16; //default dolzina teksta v eni vrstici kategorij odgovorov + + //ureditev visine puscice med blokoma okvirjev + var variable_holder_height = $('#spremenljivka_'+spremenljivka+' .variable_holder').height(); //visina variable_holder, potrebna za visino puscice med blokoma + $('#spremenljivka_'+spremenljivka+' td.middle img').css({'top' : (naslov_height + variable_holder_height/2) + 'px'}); //visina puscice med blokoma okvirjev + if (ajax){ + //console.log('Getting data on load'); + $.get(site_url+'/main/survey/ajax.php?a=get_dragdrop1_data', {spremenljivka: spremenljivka, anketa: anketa}, function(data){ //get potrebnih podatkov za resevanje missing + + //trenutna visina celotnega vprasanja + var default_var_height = $('#spremenljivka_'+spremenljivka).height(); + //console.log("default_var_height: "+default_var_height + " indeks: "+indeks+" num of grids: "+num_grids); + + if(indeks == 1){//samo enkrat pojdi skozi leve kategorije odgovorov + var cat_total_height_left = 0; //hrani trenutno visino levega okvirja kategorij odgovorov + var array_length = data.length; //hrani koliko podatkov je prisotnih v polju s podatki iz baze + var vre_id = []; //polje, ki hrani id-je vrednosti vseh kategorij odgovorov interesirane spremenljivke + + for(var i = 0; i < array_length; i++){ //sprehodi se po vseh vrednostih polja vre_id v levem bloku + vre_id[i] = data[i]; //polje iz podatkov iz baze data[], shrani v polje vre_id[] + + var cat_height = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).outerHeight(); //visina kategorije + var cat_height_real = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).outerHeight(true); //realna visina kategorije z oznako + + //console.log('Visina '+(i + 1)+': '+cat_height_real); + + if(mobile == 1){ //ko je mobilnik, uredi velikost okvirja kategorije glede na dolzino besedila + var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).text().length; //dolzina teksta v kategoriji odgovora + + if(cat_text_length > (cat_default_inline_text_length)*2.5 ){ //ce je dolzina teksta v kategoriji daljsa 2-krat vec od default (16) - DATI NA 2,5 KRATNIK + //console.log("Tekst je daljši!"); + //console.log("Dolžina besedila v kategoriji: "+cat_text_length); + var num_of_rows = cat_text_length / cat_default_inline_text_length; + //console.log("num_of_rows: "+num_of_rows); + + cat_height = cat_height + 25 * (num_of_rows - 1); //trenutno visino kategorije povecaj za 25 + //cat_height_real = cat_height_real + 25 * (num_of_rows - 1); //trenutno visino kategorije povecaj za 25 + //console.log("num_of_rows final: "+ (num_of_rows - 1)); + + //$('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).css({'height':(cat_height_real)+'px'}); //spremeni visino kategorije + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).css({'height':(cat_height)+'px'}); //spremeni visino kategorije + } + //console.log("cat_height ajax za spremenljivko:"+spremenljivka+" "+cat_height); + } + + cat_total_height_left = cat_total_height_left + cat_height_real; //izracun koncne visine levega okvirja + + + if (cat_max_height < cat_height){ //ce je maksimalna visina kategorije manjsa od trenutne visine kategorije + cat_max_height = cat_height; //naj bo vrednost max visine kategorije trenutna visina kategorije + } + + + } + //*************urejanje visine levega okvirja kategorij odgovorov + $('#half_frame_dropping_'+spremenljivka).css({'height':(cat_total_height_left)+'px'});//visina levega okvirja + } + + if (mobile == 0 || mobile == 2){ + if(skatle){ + var title_heigth_real = $('.frame_dropping_titles_box').outerHeight(true); + }else{ + var title_heigth_real = $('.frame_dropping_titles').outerHeight(true); + } + }else{ + if(skatle){ + var title_heigth_real = $('.frame_dropping_titles_box_mobile').outerHeight(true); + }else{ + var title_heigth_real = $('.frame_dropping_titles_mobile').outerHeight(true); + } + + } + + if(indeks == 1){ //samo enkrat pojdi skozi desne okvirje + for(var j = 1; j <= num_grids; j++){ //preglej vse desne okvirje v desnem bloku + //realna visina trenutnega okvirja*************************************** + var okvir_height_real = $('#half2_frame_dropping_'+j+'_'+spremenljivka).outerHeight(true); + frame_total_height_right[spremenljivka] = frame_total_height_right[spremenljivka] + okvir_height_real + title_heigth_real; + //console.log(j+" frame_total_height_right["+spremenljivka+"]:"+frame_total_height_right[spremenljivka]); + + //ureditev pravilnega pozicioniranja kategorij ob refreshu @okvir skatlaste oblike + //console.log("Refresh je:"+refresh); + if(refresh[spremenljivka] == 1 && skatle){ + //console.log("Je refresh"); + var desniOkvir = $('#half2_frame_dropping_'+j+'_'+spremenljivka); + var cat_right = desniOkvir.children('div').outerHeight(true);//belezi visino kategorije odgovora, ce je ta prisotna v trenutnem desnem okvirju + if(cat_right){ //ce je kaj v okvirju, uredi pravi visino za kategorijo + var zapStevKategorije = 1; + desniOkvir.children('div').each(function () { + var trenutnaVisinaKategorije = $(this).outerHeight(true); + //console.log("trenutnaVisinaKategorije:"+trenutnaVisinaKategorije); + //var trenutnaVisinaKategorije = 0; + var pravaVisina = calcPravaVisina(desniOkvir, $(this), j, spremenljivka, refresh[spremenljivka], zapStevKategorije); + desniOkvir.prepend($(this).css({top: pravaVisina})); //prenesi ustrezni odgovor + zapStevKategorije++; + }); + //var pravaVisina = calcPravaVisina(desniOkvir, 0, j, spremenljivka, refresh); + } + + }else{ + //console.log("Ni bilo refresha"); + } + //ureditev pravilnega pozicioniranja kategorij ob refreshu @okvir skatlaste oblike - konec + } + //console.log(" frame_total_height_right["+spremenljivka+"]:"+frame_total_height_right[spremenljivka]); + if(refresh[spremenljivka] == 1 && skatle){ + refresh[spremenljivka] = 0; + } + } + + default_var_height_1[spremenljivka] = $('#spremenljivka_'+spremenljivka).height(); //belezenje celotne zacetne visine spremenljivke + + if(cat_total_height_left > frame_total_height_right[spremenljivka]){ //ce je trenutna visina levega okvirja z odgovori vecja od koncne visine desnega okvirja + //console.log("Levi vecji od desnega za "+spremenljivka); + if( (cat_total_height_left > default_var_height) ){ //ce je koncna visina levega okvirja z odgovori vecja od visine celotnega vprasanja + dynamic_question_height_sub(cat_total_height_left, spremenljivka, default_var_height_1[spremenljivka]); //ustrezno spremeni visino celotnega vprasanja + }else if(cat_total_height_left < default_var_height_1[spremenljivka]){ //ce je koncna visina levega okvirja z odgovori manjsi od visine celotnega vprasanja + dynamic_question_height_sub(cat_total_height_left, spremenljivka, default_var_height_1[spremenljivka]); //ustrezno spremeni visino celotnega vprasanja + } else{ + dynamic_question_height_sub(cat_total_height_left, spremenljivka, default_var_height_1[spremenljivka]);//ustrezno spremeni visino celotnega vprasanja + } + + //ce je trenutna visina levega okvirja z odgovori manjsa od koncne visine desnega okvirja + }else if(cat_total_height_left < frame_total_height_right[spremenljivka]){ + //console.log("Levi manjsi od desnega za "+spremenljivka); + + frame_total_height_right[spremenljivka] = frame_total_height_right[spremenljivka] + naslov_height + pomoznoBesediloHeight + visinaPaddingovMarginovVprasanja + visinaPaddingovMarginovHolder*5; + + $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(frame_total_height_right[spremenljivka]*0.9); + + $('#spremenljivka_'+spremenljivka).height(frame_total_height_right[spremenljivka]); + } + + //urejanje visine na kateri se nahaja gumb za ponastavljanje vprašanja + ResetButtonHeight(spremenljivka); + + }, "json"); + } + + //************************ konec - ureditev visine celotnega vprasanja, ce je ta visja od default-a + + //console.log("Grid delovanje: "+num_grids); + + $('#half_frame_dropping_'+spremenljivka) + .droppable({ + //hoverClass: 'frame_dropping_hover', + drop: function (event, ui) { + if(typeof checkBranching == 'function'){ + checkBranching(); + } + + //$(ui.draggable).detach().css({top: -6,left: -6}).appendTo(this); + $(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); + $(ui.draggable).addClass('drag_and_drop_right'); + + var vre_id = ui.draggable.attr('value'); + + if (ajax && tip == 6){ + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop_grid_data_1', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa, indeks: last_indeks[spremenljivka]}); //post-aj potrebne podatke za brisanje + //} + draggableOnDroppable[vre_id][last_indeks[spremenljivka]] = false; //oznacimo, da smo trenutno kategorijo odgovora odstranili iz okvirja + draggableOverDroppable[vre_id][last_indeks[spremenljivka]] = false; + //console.log('draggableOverDroppable['+vre_id+']['+last_indeks[spremenljivka]+']: '+draggableOverDroppable[vre_id][last_indeks[spremenljivka]]) + var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); + var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju + if(prejsnji_okvir_kat_prisotna === undefined && last_indeks[spremenljivka] != 0){ + //console.log("Levi frame last frame func"); + last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); //spremeni visino zadnje obiskanega okvirja + } + dynamic_question_height(spremenljivka, num_grids, mobile, skatle); + last_indeks[spremenljivka] = 0; + last_drop[vre_id] = 0; + last_vre_id[spremenljivka] = 0; + + } + from_left[vre_id] = true; +/* var default_var_height = $('#spremenljivka_'+spremenljivka).height(); + default_var_height_1[spremenljivka] = default_var_height; */ + }, + out: function (event, ui) { //ob izhodu iz drop zone + $(ui.draggable).removeClass('drag_and_drop_right'); + $(ui.draggable).addClass('drag_and_drop'); + //answer_coming[spremenljivka] = true; + //var vre_id = ui.draggable.attr('value'); + //console.log("from_left["+vre_id+"]: "+from_left[vre_id]); + }, + over: function (event, ui) { + var vre_id = ui.draggable.attr('value'); + //potrebno pridobiti informacijo ze tukaj, ker drugace so tezave @ revert v levi okvir + vre_id_global[spremenljivka] = vre_id; + draggable_global[vre_id] = ui.draggable; + + $(ui.draggable).removeClass('drag_and_drop_box_right_after_refresh'); + + } + }); + + + $('#half2_frame_dropping_'+indeks+'_'+spremenljivka) + .droppable({ + //hoverClass: 'frame_ranking_hover', + //hoverClass: 'frame_dropping_hover', + tolerance: "pointer", + //accept: '#half_'+spremenljivka+' div', + drop: function (event, ui) { //ob dropanju odgovora v desni blok + //console.log("Drop"); + if(typeof checkBranching == 'function'){ + checkBranching(); + } + + if(mobile == 0 || mobile == 2){ + //$(this).toggleClass('frame_dropping_wider'); //spremeni videz trenutnega okvirja + }else if(mobile == 1){ + //$(this).toggleClass('frame_dropping_wider_mobile'); //spremeni videz trenutnega okvirja + } + + + num_grids = num_grids_global[spremenljivka]; + var vre_id = ui.draggable.attr('value'); + var other = ui.draggable.attr('missing'); //spremenljivka, ki hrani vrednost atributa missing + var other_present = $(this).children('div').attr('missing'); //missing, ki je trenutno v desnem bloku + var cat_right = $(this).children('div').outerHeight(true); //ali je prisotna kaksna kategorija v trenuntem desnem okvirju? Undefined = ne + var vre_id_present = $(this).children('div').attr('value'); //vre_id kategorije odgovora, ki je prisotna v okvirju ob dropu + //var draggable_global[spremenljivka] = ui.draggable; + draggable_global[vre_id] = ui.draggable; + + //*******************dinamicna visina celotnega vprasanja glede na vsebino prenesenih desnih okvirjev + var title_heigth = 26; //visina okvricka z naslovom + var height_beside = 40; //visina od zacetka vprasanja do prvega okvirja (in malo po zadnjem okvirju) + var final_height_right_block = 0; //hrani koncno visino desnega bloka, torej vseh prisotnih okvirjev + final_height_right_block = final_height_right_block + height_beside; //koncni visini dodamo se "praznino" med zacetkom vprasanja in prvim okvirjem + + for(var j = 1; j <= num_grids; j++){ //preglej vse okvirje + //notranja visina trenutnega okvirja*************************************** + var okvir_height = $('#half2_frame_dropping_'+j+'_'+spremenljivka).outerHeight(true); + //************************************************************************* + final_height_right_block = final_height_right_block + okvir_height + title_heigth; + //console.log('Koncna visina desnega bloka: '+final_height_right_block); + } + + //trenutna visina celotnega vprasanja + var default_var_height = $('#spremenljivka_'+spremenljivka).height(); + //console.log('Default: '+default_var_height); + //console.log('Final: '+final_height_right_block); + if(final_height_right_block > default_var_height){ + $('#spremenljivka_'+spremenljivka).css({'height':final_height_right_block+'px'}); + //da ne bo pri mobilnikih prevec skrito vprasanje + $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').css({'height':(final_height_right_block - 100)+'px'}); + + } + //************************************ konec - dinamicna visina celotnega vprasanja glede na visino prenesenih desnih okvirjev + + //ce je tabela - en odgovor + if(tip == 6){ + //pozicioniranje draggable na pravo mesto + if (cat_right && skatle){ //ce je ze nekaj v okvirju in imamo okvirje skatlaste oblike + $(ui.draggable).removeClass('drag_and_drop');//odstranimo, ker je nepotrebno + $(ui.draggable).removeClass('drag_and_drop_box_right_after_refresh');//odstranimo, ker je nepotrebno + var pravaVisina = calcPravaVisina(this, ui.draggable); //visina/pozicija prenesene kategorije v desnem okvirju + $(ui.draggable).detach().css({top: (pravaVisina), left: left_cat}).prependTo(this); //pozicioniraj kategorijo odgovora na pravo mesto tako, da je nad prejsnjim + if($(this).children('div').hasClass('drag_and_drop_box_right_after_refresh')){ //ce so v okvirju kategorije, po refreshu + $(ui.draggable).addClass('drag_and_drop_box_right_after_refresh');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo + }else{ + $(ui.draggable).addClass('drag_and_drop_box_right_over');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo + } + }else{ + $(ui.draggable).removeClass('drag_and_drop');//odstranimo, ker je nepotrebno + $(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); //najprej pozicioniramo na zacasni lokaciji + if(skatle){ //ce je okvir skatlaste oblike + $(ui.draggable).removeClass('drag_and_drop_box_right_after_refresh');//odstranimo, ker je nepotrebno na levi strani + $(ui.draggable).addClass('drag_and_drop_box_right');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo + }else{ + $(ui.draggable).addClass('drag_and_drop_right');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo + } + } + + //pozicioniranje draggable na pravo mesto - konec + + if (ajax){ + $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop_grid', {vre_id_present: vre_id_present, tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id, indeks: indeks, cat_right: cat_right, last_vre_id: last_vre_id[spremenljivka]}); //post-aj potrebne podatke za belezenje v bazo + if(last_drop[vre_id] != indeks || last_drop[vre_id] != 0){ + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop_grid_data_1', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa, indeks: last_drop[vre_id]}); //post-aj potrebne podatke za brisanje + } + } + } + else if(tip == 16 && draggableOnDroppable[vre_id][indeks] == false){ //ce je tabela - vec odgovorov in odgovora ni v trenutnem okvirju, uredi clone + var visina_test = ui.draggable.css('height'); + //pozicioniranje draggable na pravo mesto********************** + if(cat_right && skatle){ //ce je ze nekaj v okvirju in je ta skatlaste oblike + var pravaVisina = calcPravaVisina(this, ui.draggable); //visina/pozicija prenesene kategorije v desnem okvirju + + $(ui.draggable.clone()).detach().css({top: pravaVisina,left: left_cat, height: visina_test}).prependTo(this); //pozicioniraj kategorijo odgovora na pravo mesto in dodaj ustrezno visino + + if($(this).children('div').hasClass('drag_and_drop_box_right_after_refresh')){ //ce so v okvirju kategorije, po refreshu + $(this).children(ui.draggable).addClass('drag_and_drop_box_right_after_refresh');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo + }else{ + $(this).children(ui.draggable).addClass('drag_and_drop_box_right_over');//dodamo slog, ki dokoncno postavi draggable na pravo lokacijo + } + }else{ + if(skatle){ //ce je okvir skatlaste oblike + $(ui.draggable.clone()).detach().css({top: top_cat,left: left_cat, height: visina_test}).addClass('drag_and_drop_box_right').appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto in dodaj ustrezno visino + }else{ + $(ui.draggable.clone()).detach().css({top: top_cat,left: left_cat, height: visina_test}).addClass('drag_and_drop_right').appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto in dodaj ustrezno visino + } + } + //pozicioniranje draggable na pravo mesto - konec************************** + + if (ajax){ + $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop_grid', {vre_id_present: vre_id_present, tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id, indeks: indeks, cat_right: cat_right, last_vre_id: last_vre_id[spremenljivka]}); //post-aj potrebne podatke za belezenje v bazo + } + } + + if(last_indeks[spremenljivka] !== undefined){ + var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); + var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju + //console.log("last_indeks[spremenljivka][indeks]: "+last_indeks[spremenljivka][indeks]); + if(last_indeks[spremenljivka] == 0 || prejsnji_okvir_kat_prisotna === undefined){ + last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); //spremeni visino zadnje obiskanega okvirja + } + } + + last_drop[vre_id] = indeks; //zabelezi indeks okvirja zadnjega drop-a + draggableOnDroppable[vre_id][indeks] = true; //oznacimo, da je trenutna kategorija odgovora v okvirju + if(tip == 6){ + from_left[vre_id] = false; + } + }, + over: function (event, ui) { //ob prenosu trenutne kategorije odgovora nad okvirjem + //console.log("Over"); + num_grids = num_grids_global[spremenljivka]; + if(typeof checkBranching == 'function'){ + checkBranching(); + } + var vre_id = ui.draggable.attr('value'); + var vre_id_present = $(this).children('div').attr('value'); //vre_id kategorije odgovora, ki je prisotna v okvirju ob dropu + vre_id_global[spremenljivka] = vre_id; + var trenutni_okvir = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka); + //console.log("from_left["+vre_id+"]: "+from_left[vre_id]); + + if (last_indeks[spremenljivka] == 0 && tip == 6){ //ce prenasamo kategorije odgovora iz levega okvirja + last_indeks[spremenljivka] = indeks; //zabelezi indeks prejsnjega okvirja + + }else { + + var last_vrednost_id_temp = last_vre_id[spremenljivka]; + var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); + + //if(tip == 16 || tip == 6){ + if(tip == 6){ + var prejsnji_okvir_kat_prisotna = []; + var stevilo_prisotnih = prejsnji_okvir.children('div').length; + //console.log(stevilo_prisotnih); + for(var z = 1; z <= stevilo_prisotnih; z++){ + //prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju + prejsnji_okvir_kat_prisotna[z] = prejsnji_okvir.children('div :nth-child('+z+')').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju, kateri odgovori so prisotni + //console.log("prejsnji_okvir_kat_prisotna["+z+"]: "+prejsnji_okvir_kat_prisotna[z]); + + if(last_vrednost_id_temp != 0){ + //ce v prejsnjem okvirju ni nicesar in (v prejsnjem okvirju ni nicesar ali je identifikacija ista trenutni) + if( (draggableOnDroppable[last_vrednost_id_temp][indeks] == false) && ( (prejsnji_okvir_kat_prisotna === undefined) || (prejsnji_okvir_kat_prisotna == vre_id) ) ){ + if ( (tip == 16 && draggableOnDroppable[vre_id][last_indeks[spremenljivka]] == false) || tip == 6 ){ + //spremeni visino prejsnjega okvirja + last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); + //console.log("Spreminjam prejsnji okvir"); + } + } + } + } + } + } + + + if(vre_id_present !== undefined){ + //ce ni se nicesar v trenutnem okvirju, ali odgovor je na poti v okvir in je vprasanje tipa 16 (tabela - vec odgovorov) ali 6 (tabela - en odgovor) + if (draggableOnDroppable[vre_id_present][indeks] != true || (draggableOverDroppable[vre_id][indeks] == false && (tip == 16 || tip == 6) ) ){ + //zabelezi, da je odgovor nad okvirjem + draggableOverDroppable[vre_id][indeks] = true; + if ((tip == 16 && draggableOnDroppable[vre_id][indeks] == false) || tip == 6){ + //uredi visino okvirja in celotnega vprasanja + frame_and_question_height(trenutni_okvir, spremenljivka, num_grids, cat_margin_left, cat_default_height, ui.draggable); + if(from_left[vre_id] != false){ + dynamic_question_height(spremenljivka, num_grids, mobile, skatle); + } + + //console.log("Tukaj 1"); + } + } + }else{ + + if (vre_id_present === undefined || (draggableOverDroppable[vre_id][indeks] == false && (tip == 16 || tip == 6) ) ){ + //zabelezi, da je odgovor nad okvirjem + draggableOverDroppable[vre_id][indeks] = true; + if ( (tip == 16 && (draggableOnDroppable[vre_id][indeks] == false || last_drop[vre_id] == 0 )) || tip == 6){ + //uredi visino okvirja in celotnega vprasanja + frame_and_question_height(trenutni_okvir, spremenljivka, num_grids, cat_margin_left, cat_default_height, ui.draggable); + if(from_left[vre_id] != false){ + dynamic_question_height(spremenljivka, num_grids, mobile, skatle); + } + //console.log("Tukaj 2"); + } + } + } + + //spremeni videz trenutnega okvirja + if(draggableOverDroppable[vre_id][indeks] == true){ + if(mobile == 0 || mobile == 2){ + //$(this).toggleClass('frame_dropping_wider'); + } + else if(mobile == 1){ + //$(this).toggleClass('frame_dropping_wider_mobile'); + } + } + + last_indeks[spremenljivka] = indeks; //zabelezi indeks (trenutnega oz. bodocega) prejsnjega okvirja + cat_pushed[spremenljivka] = false; + }, + out: function (event, ui) { //ob izhodu iz drop zone + console.log("Out"); + num_grids = num_grids_global[spremenljivka]; + var vre_id = ui.draggable.attr('value'); + var vre_id_present = $(this).children('div').attr('value'); //vre_id kategorije odgovora, ki je prisotna v okvirju ob dropu + var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); + var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju + //console.log("Out"); + //draggableOnDroppable[vre_id] = false; //oznacimo, da smo tretnutno kategorijo odgovora odstranili iz okvirja + + + //if(draggableOverDroppable[vre_id] == true && tip == 16){ + if(draggableOverDroppable[vre_id][indeks] == true && ( (tip == 16 && draggableOnDroppable[vre_id][last_indeks[spremenljivka]] == false) || tip == 6) ){ + //console.log("Last frame out pri indeksu: "+last_indeks[spremenljivka]); + last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); + } + last_vre_id[spremenljivka] = vre_id; + last_indeks[spremenljivka] = indeks; + if( tip == 6 || (tip == 16 && draggableOnDroppable[vre_id][last_indeks[spremenljivka]] == false) ){ + draggableOnDroppable[vre_id][indeks] = false; //oznacimo, da trenutne kategorije odgovora ni v okvirju + } + draggableOverDroppable[vre_id][indeks] = false; + draggable_global[vre_id] = ui.draggable; + + //spremeni videz prejsnjega okvirja + if(draggableOverDroppable[vre_id][indeks] == false){ + if(mobile == 0 || mobile == 2){ + //prejsnji_okvir.toggleClass('frame_dropping_wider'); + }else if(mobile == 1){ + //prejsnji_okvir.toggleClass('frame_dropping_wider_mobile'); + } + } + + if(skatle){ //ce so okvirji skatlaste oblike + $(ui.draggable).removeClass('drag_and_drop_box_right'); //odstranimo slog, ker drugace se draggable ne vidi, ko ga premikamo + $(ui.draggable).removeClass('drag_and_drop_box_right_over'); //odstranimo slog, ker drugace se draggable ne vidi, ko ga premikamo + $(ui.draggable).removeClass('drag_and_drop_box_right_after_refresh');//drag_and_drop_box_right_after + + }else{ + $(ui.draggable).removeClass('drag_and_drop_right'); //odstranimo slog, ker drugace se draggable ne vidi, ko ga premikamo + } + + + } + }); + + //********************** odstranitev odgovorov iz desnih okvirjev @ tabela - vec odgovorov + // ce je tabela - vec odgovorov + if(tip == 16){ //uredi odstranjevanje kategorij odgovorov iz desnega okvirja ob kliku na njih + + $('#half2_frame_dropping_'+indeks+'_'+spremenljivka).click(function(){ + + $('#half2_frame_dropping_'+indeks+'_'+spremenljivka).children().click(function(){ //ob kliku na kategorijo odgovora + + var index1 = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka).children().index(this); //indeks klikanega odgovora + var prejsnji_okvir = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka); // + var vre_id = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka+' div:nth-child('+(index1 + 1)+')').attr('value'); + var draggable = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka+' div:nth-child('+(index1 + 1)+')'); + + $('#half2_frame_dropping_'+indeks+'_'+spremenljivka+' div:nth-child('+(index1 + 1)+')').detach();//odstrani odgovor iz okvirja + + if (ajax){ //odstrani podatek o odgovoru iz baze + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop_grid_data', {tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa, indeks: indeks}); //post-aj potrebne podatke za brisanje + } + //console.log(draggableOnDroppable[vre_id][indeks]); + last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, draggable); //spremeni visino zadnje obiskanega okvirja + draggableOnDroppable[vre_id][indeks] = false; //oznacimo, da smo trenutno kategorijo odgovora odstranili iz okvirja + //console.log("draggableOnDroppable["+vre_id+"]["+indeks+"]: "+draggableOnDroppable[vre_id][indeks]); + draggableOverDroppable[vre_id][indeks] = false; + from_left[vre_id] = true; + dynamic_question_height(spremenljivka, num_grids, mobile, skatle); + //console.log("vre_id: "+vre_id); + + ResetButtonHeight(spremenljivka);//povrni gumb na zacetno visino + }); + + }); + + } + //********************** konec - odstranitev odgovorov iz desnih okvirjev @ tabela - vec odgovorov +} +//************************************************************************************** + + +//ureja visino ovirja in kategorije vprasanja +function frame_and_question_height(trenutni_okvir, spremenljivka, num_grids, cat_margin_left, cat_default_height, draggable){ + //console.log('Frame and question height'); + //uredi visino okvirja in celotnega vprasanja + var other = draggable.attr('missing'); //spremenljivka, ki hrani vrednost atributa missing + var other_present = trenutni_okvir.children('div').attr('missing'); //missing, ki je trenutno v desnem bloku + + //***************** glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja + var cat_height_now = draggable.outerHeight(true); //visina kategorije, trenutno prenesenega odgovora + var cat_right = trenutni_okvir.children('div').outerHeight(true); //visina kategorije odgovora, ce je ta prisotna v trenutnem desnem okvirju + + //ce je v trenutnem desnem okvirju ze prisotna kategorija odgovora, + if(cat_right){ + var whole_heigth = trenutni_okvir.height(); //trenutna visina desnega okvirja + var okvir_height = whole_heigth + cat_height_now; //trenutni visini okvirja dodaj se visino trenutne kategorije + trenutni_okvir.css({'height':(okvir_height)+'px'}); //visina trenutnega desnega okvirja + //console.log('Koncna visina: '+(okvir_height)); + }else{ //drugace + if (cat_height_now < 15){ //ce je visina trenutne kategorije odgovova manjsa od 15 + cat_height_now = 15; //naj bo visina okvirja 15px, prej 20px + } + trenutni_okvir.css({'height':(cat_height_now)+'px'}); //visina trenutnega desnega okvirja + //console.log('Koncna visina: '+(cat_height_now)); + } + //************************************ konec - glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja +} + +//funkcija za urejanje visine okvirjev +function frame_height(spremenljivka, vre_id, grd_id, revert, refresh){ + //console.log("frame_height"); + //***************** glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja + //visina trenutno prenesenega odgovora************* + var cat_default_height = 37; + //var cat_height_now = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).outerHeight(true); //visina trenutne kategorije odgovora + if (vre_id != 0){ + var cat_height_now = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).outerHeight(); //visina trenutne kategorije odgovora + } + //console.log("cat_height_now:"+cat_height_now); + //*************************************************visina trenutno prenesenega odgovora - konec + + + if (refresh == 1){ //visina trenutnih kategorij v okvirju, ce je refresh + //var cat_height_now + var visinaPrisotnihKategorij = 0; + //console.log("grd_id:"+grd_id); + $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).children('div').each(function () { + var trenutnaVisinaKategorije = $(this).outerHeight(true); + visinaPrisotnihKategorij = visinaPrisotnihKategorij + trenutnaVisinaKategorije; + }); + var cat_height_now = visinaPrisotnihKategorij; + //console.log("cat_height_now:"+cat_height_now); + } + + var cat_right = $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).children('div').outerHeight(true);//belezi visino kategorije odgovora, ce je ta prisotna v trenutnem desnem okvirju + + //ce je v trenutnem desnem okvirju ze prisotna kategorija odgovora, trenutni visini okvirja dodaj se visino trenutne kategorije + //if(cat_right || revert){ + if(cat_right || revert || refresh){ + var whole_heigth = $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).outerHeight(); + //console.log("whole_heigth:"+whole_heigth); + //cat_height_now = cat_height_now + cat_margin_left; //izracun koncne visine desnega okvirja, ce imamo ze kategorije v okvirju + //var okvir_height = parseInt(whole_heigth) + parseInt(cat_height_now); + var okvir_height = whole_heigth + cat_height_now; + $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).css({'height':(okvir_height)+'px'}); //visina desnega okvirja + //console.log('Koncna visina: '+(okvir_height)); + + }else{ //drugace + //cat_height_now = cat_height_now + cat_default_height; //izracun koncne visine desnega okvirja, ce ni kategorij v okvirju + if (cat_height_now < 15){ //ce je visina trenutne kategorije odgovova manjsa od 15, prej 20 + cat_height_now = 15; //naj bo visina okvirja 15px, prej 20px + } + $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).css({'height':(cat_height_now)+'px'}); //visina trenutnega desnega okvirja + //console.log('Koncna visina okvirja z odgovorom: '+(cat_height_now)); + } + //************************************ konec - glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja + + //console.log("cat_height_now ["+vre_id+"]: "+cat_height_now); +} +//************** konec - funkcije za urejanje visine okvirjev + +//***************funkcija za urejanje visine zadnje obiskanega okvirja @ drag and drop +function last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, draggable){ + //console.log("last_frame_height"); + //****glede na odstrajeno kategorijo odgovora, trenutni visini okvirja odstrani visino odstranjene kategorije + + var trenutna_visina_okvirja = prejsnji_okvir.height(); + var trenutna_visina_kategorije = draggable.outerHeight(true);//visina odnesene kategorije odgovora + koncna_visina_zapuscenega_okvirja = trenutna_visina_okvirja - trenutna_visina_kategorije; + + //console.log("trenutna_visina_okvirja:"+trenutna_visina_okvirja); + //console.log("trenutna_visina_kategorije:"+trenutna_visina_kategorije); + //console.log("koncna_visina_zapuscenega_okvirja:"+koncna_visina_zapuscenega_okvirja); + + + if (koncna_visina_zapuscenega_okvirja < 15){ + koncna_visina_zapuscenega_okvirja = 15; + } + + prejsnji_okvir.css({'height':(koncna_visina_zapuscenega_okvirja)+'px'}); //visina trenutnega desnega okvirja +} +//*************** konec - funkcija za urejanje visine zadnje obiskanega okvirja + +//********* skrbi za koncno ureditev visine celotnega vprasanja glede na visino (levega ali desnega) bloka @ drag and drop +function dynamic_question_height_sub(frame_height, spremenljivka){ + //console.log("dynamic_question_height_sub za "+spremenljivka); + + //var default_var_height = $('#spremenljivka_'+spremenljivka).height(); //trenutna visina celotnega vprasanja + var default_var_height = $('#spremenljivka_'+spremenljivka).outerHeight(true); //trenutna visina celotnega vprasanja + + var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').outerHeight(true); + var visinaPaddingovMarginovVprasanja = $('#spremenljivka_'+spremenljivka).outerHeight(true) - $('#spremenljivka_'+spremenljivka).height(); + var visinaPaddingovMarginovHolder = $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').outerHeight(true) - $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(); + var pomoznoBesediloHeight = 40; //visina besedila "Razpoložljive kategorije:", za mobilne naprave + + var vmesnaVisinaOkvirja = realnaVisina(spremenljivka, frame_height); + + //if( (frame_height + naslov_height) > default_var_height){ //ce je koncna visina okvirja vecja od trenutne default visine celotnega vprasanja + if( (vmesnaVisinaOkvirja) > default_var_height){ //ce je koncna visina okvirja vecja od trenutne default visine celotnega vprasanja + updateHeight(spremenljivka, frame_height); + //console.log("Spreminjam 1"); + }else if((vmesnaVisinaOkvirja) < default_var_height){ //ce je koncna visina okvirja manjsa od trenutne default visine celotnega vprasanja + var koncnaVisinaVprasanja = $('#spremenljivka_'+spremenljivka).outerHeight(true); //trenutna visina celotnega vprasanja; + //console.log("koncnaVisinaVprasanja:"+koncnaVisinaVprasanja); + updateHeight(spremenljivka, 0, koncnaVisinaVprasanja); + + $('#spremenljivka_'+spremenljivka).height(koncnaVisinaVprasanja); //koncna visina celotnega vprasanja + + //da ne bo pri mobilnikih prevec skrito vprasanje, spremeni visino variable_holder + $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(koncnaVisinaVprasanja*0.85); + //console.log("Spreminjam 2"); + } +} + +//*********** ureja dinamicno visino celotnega vprasanja glede na visino prenesenih kategorij odgovorov iz desnih okvirjev v levega +function dynamic_question_height(spremenljivka, num_grids, mobile, skatle){ + //console.log("dynamic_question_height za:"+spremenljivka); + +/* if (mobile == 0 || mobile == 2){ + var title_heigth = $('.frame_dropping_titles').outerHeight(true); + }else{ + var title_heigth = $('.frame_dropping_titles_mobile').outerHeight(true); + } */ + if (mobile == 0 || mobile == 2){ + if(skatle){ + var title_heigth = $('.frame_dropping_titles_box').outerHeight(true); + }else{ + var title_heigth = $('.frame_dropping_titles').outerHeight(true); + } + }else{ + if(skatle){ + var title_heigth = $('.frame_dropping_titles_box_mobile').outerHeight(true); + }else{ + var title_heigth = $('.frame_dropping_titles_mobile').outerHeight(true); + } + + } + + var final_height_right_block = 0; //hrani koncno visino desnega bloka, torej vseh prisotnih okvirjev + var frame_height_left = $('#half_frame_dropping_'+spremenljivka).outerHeight(true); //visina celotnega levega okvirja + //console.log('Koncna visina levega bloka: '+frame_height_left); + + //pridobi visino desnega bloka + for(var j = 1; j <= num_grids; j++){ //preglej vse okvirje na desni strani + var okvir_height = $('#half2_frame_dropping_'+j+'_'+spremenljivka).outerHeight(true); //visina trenutnega okvirja + final_height_right_block = final_height_right_block + okvir_height + title_heigth; //vmesna visina desnega okvirja + } + //console.log('Koncna visina desnega bloka: '+final_height_right_block); + //pridobi visino desnega bloka - konec + + var default_var_height = $('#spremenljivka_'+spremenljivka).height(); //trenutna visina celotnega vprasanja + //console.log("default_var_height: "+default_var_height); + + var vmesnaVisinaVprasanjaLevo = realnaVisina(spremenljivka, frame_height_left); + var vmesnaVisinaVprasanjaDesno = realnaVisina(spremenljivka, final_height_right_block); + + //ce je visina celotnega vprasanja manjsa od okvirja/bloka (levi ALI desni) + if( (default_var_height < (vmesnaVisinaVprasanjaLevo)) || (default_var_height < (vmesnaVisinaVprasanjaDesno)) ){ + if(frame_height_left < final_height_right_block){ + //console.log("Levi manjsi od desnega"); + dynamic_question_height_sub(final_height_right_block, spremenljivka); //glede na visino desnega bloka uredi velikost celotnega vprasanja + }else if(frame_height_left > final_height_right_block){ + //console.log("Levi vecji od desnega"); + dynamic_question_height_sub(frame_height_left, spremenljivka); //glede na visino levega bloka uredi velikost celotnega vprasanja + } + }else if (frame_height_left < final_height_right_block){ + updateHeight(spremenljivka, final_height_right_block); //posodobi visino vprasanja + //console.log("Spreminjam A1"); + }else if (frame_height_left > final_height_right_block){ + updateHeight(spremenljivka, frame_height_left); //posodobi visino vprasanja + //console.log("Spreminjam A2"); + } +} + +//posodobi visino celotnega vprasanja in variable_holder +function updateHeight(spremenljivka, final_height_block, visinaVprasanja){ + + if(visinaVprasanja) {var koncnaVisinaVprasanja = visinaVprasanja;} + else {var koncnaVisinaVprasanja = realnaVisina(spremenljivka, final_height_block);} + + //ureditev visine celotnega vprasanja + $('#spremenljivka_'+spremenljivka).height(koncnaVisinaVprasanja); + + //da ne bo pri mobilnikih prevec skrito vprasanje, spremeni visino variable_holder + $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(koncnaVisinaVprasanja*0.85); +} + +//vrne realno visino vprasanja/bloka +function realnaVisina(spremenljivka, final_height_block){ + var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').height(); + var visinaPaddingovMarginovVprasanja = $('#spremenljivka_'+spremenljivka).outerHeight(true) - $('#spremenljivka_'+spremenljivka).height(); + var visinaPaddingovMarginovHolder = $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').outerHeight(true) - $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(); + var pomoznoBesediloHeight = 40; //visina besedila "Razpoložljive kategorije:" + + var realnaVisina = final_height_block + naslov_height + pomoznoBesediloHeight + visinaPaddingovMarginovVprasanja + visinaPaddingovMarginovHolder*4; + + return realnaVisina; +} + +//vrne visino/pozicijo prenesene kategorije v desnem skatlastem okvirju +function calcPravaVisina(tole, draggable, indeks, spremenljivka, refresh, zapStevKategorije, revert){ + //console.log("refresh:"+refresh); + + var visinaDesnegaOkvirja = $(tole).outerHeight(); + //console.log("visinaDesnegaOkvirja:"+visinaDesnegaOkvirja); + var visinaPreneseneKategorije = 0; + if(draggable){ + visinaPreneseneKategorije = $(draggable).outerHeight(true); + } + + //console.log("visinaPreneseneKategorije:"+visinaPreneseneKategorije); + + var visinaPrisotnihKategorij = 0; + var steviloKategorij = 0; + $(tole).children('div').each(function () { + var trenutnaVisinaKategorije = $(this).outerHeight(true); + visinaPrisotnihKategorij = visinaPrisotnihKategorij + trenutnaVisinaKategorije; + steviloKategorij++; + }); + //console.log("steviloKategorij:"+steviloKategorij); + //console.log("visinaPrisotnihKategorij:"+visinaPrisotnihKategorij); + //console.log("zapStevKategorije:"+zapStevKategorije); + + //ce je refresh ali revert + if( refresh == 1 || revert == 1){ + if (visinaDesnegaOkvirja < visinaPrisotnihKategorij){ //ce je visina desnega okvirja manjsa od visine prisotnih kategorij + //console.log("visinaDesnegaOkvirja < visinaPrisotnihKategorij"); + if(refresh == 1){ + $('#half2_frame_dropping_'+indeks+'_'+spremenljivka).css({'height':(visinaPrisotnihKategorij)+'px'}); //visina desnega okvirja + } + visinaDesnegaOkvirja = $(tole).outerHeight(); + //console.log("visinaDesnegaOkvirja po refresh:"+visinaDesnegaOkvirja); + } + + if(steviloKategorij > 1){ + var pravaVisina = visinaDesnegaOkvirja - visinaPrisotnihKategorij; + }else{ + var pravaVisina = visinaDesnegaOkvirja - visinaPreneseneKategorije; + } + }else{ + var pravaVisina = visinaDesnegaOkvirja - visinaPrisotnihKategorij - visinaPreneseneKategorije; + } + + //console.log("pravaVisina za sprem "+spremenljivka+" :"+pravaVisina); + //console.log("-------------------------"); + return pravaVisina; +} + +//urejanje visine na kateri se nahaja gumb za ponastavljanje vprašanja +function ResetButtonHeight(spremenljivka){ + $('#resetDragDrop_'+spremenljivka).position({ + my: "left bottom", + at: "left bottom", + of: "#spremenljivka_"+spremenljivka, + collision: 'none' + }); + + var currentTop = $('#resetDragDrop_'+spremenljivka).css('top'); + var newTop = parseInt(currentTop) - 20; + $('#resetDragDrop_'+spremenljivka).css('top', newTop+'px'); +} \ No newline at end of file diff --git a/admin/survey/script/DragDrop/dragdropboxInAdmin.js b/admin/survey/script/DragDrop/dragdropboxInAdmin.js new file mode 100644 index 0000000..f2da65a --- /dev/null +++ b/admin/survey/script/DragDrop/dragdropboxInAdmin.js @@ -0,0 +1,951 @@ +//************funkcija, ki skrbi za inicializacijo draggable elementov pri gridih +function GridDraggableBox(tip, spremenljivka, vre_id, ajax, anketa, site_url, usr_id, other, mobile){ + //*****za mobilne naprave + var top_cat = -1; + var left_cat = -1; + if (mobile == 0 || mobile == 2){ + top_cat = -6; + top_cat_right = 30; + left_cat = -6; + } + //********************* + + //$('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).detach().css({top: -6,left: -6}).appendTo('#half_frame_dropping_'+spremenljivka) //zeleni element s kategorijami dodaj v zacetnem kontejnerju + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).detach().css({top: top_cat,left: left_cat}).appendTo('#half_frame_dropping_'+spremenljivka) //zeleni element s kategorijami dodaj v zacetnem kontejnerju + .draggable({ //ureditev, da je element draggable + cursor: 'move', + //revert: true, + helper: 'original', + zIndex: 100, + revert: function(socketObj) + { + checkBranching(); + var revert = false; + var cat_default_height = 37; + var cat_margin_left = 10 + 5*2 + 1*2; + //var indeks_revert_1 = last_indeks[spremenljivka]; + var last_vre_id_revert = last_vre_id[spremenljivka]; + var trenutna_vre_id_revert = vre_id_global[spremenljivka]; + //console.log("trenutna_vre_id_revert: "+trenutna_vre_id_revert); + //var indeks_revert = indeks_global[spremenljivka]; + var indeks_revert = last_drop[trenutna_vre_id_revert]; + vre_id = trenutna_vre_id_revert; + //grd_id = last_indeks[spremenljivka]; + grd_id = indeks_revert; + var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); + var trenutni_okvir = $('#half2_frame_dropping_'+last_drop[trenutna_vre_id_revert]+'_'+spremenljivka); + var draggable = draggable_global[trenutna_vre_id_revert]; + + //if false then no socket object drop occurred. + if(socketObj === false){ + //revert the peg by returning true + //console.log("Reverting!") + revert = true; + + if(tip == 6){ + //ce odgovora ni v levem okvirju (ima indeks = 0), + //ce se odgovor reverta nazaj v desni okvir + if(indeks_revert != 0){ + //oznacimo, da je trenutna kategorija odgovora v desnem okvirju + draggableOnDroppable[last_vre_id_revert][indeks_revert] = true; + //draggableOverDroppable[vre_id] = false; + draggableOverDroppable[vre_id][indeks_revert] = true; + //console.log('draggableOverDroppable['+vre_id+']['+indeks_revert+']: '+draggableOverDroppable[vre_id][indeks_revert]); + //postimajo visino + frame_and_question_height(trenutni_okvir, spremenljivka, num_grids_global[spremenljivka], cat_margin_left, cat_default_height, draggable); + //console.log("Frame and question height iz reverta"); + } + var prejsnji_okvir_kat_prisotna = []; + var stevilo_prisotnih = prejsnji_okvir.children('div').length; + //console.log(stevilo_prisotnih); + //var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju + + for(var z = 1; z <= stevilo_prisotnih; z++){ + prejsnji_okvir_kat_prisotna[z] = prejsnji_okvir.children('div :nth-child('+z+')').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju, kateri odgovori so prisotni + //console.log("prejsnji_okvir_kat_prisotna["+z+"]: "+prejsnji_okvir_kat_prisotna[z]); + //} + //console.log("Tukaj!"); + //ce zadnje obiskani okvir je bil eden od desnih in smo startali iz levega + if(last_indeks[spremenljivka] != 0 && indeks_revert == 0){ + //spremeni velikost zadnje obiskanega desnega okvirja + //console.log("Tukaj!"); + if(prejsnji_okvir_kat_prisotna[z] === undefined){ + last_frame_height(prejsnji_okvir, spremenljivka, num_grids_global[spremenljivka], cat_margin_left, draggable_global[trenutna_vre_id_revert]); + } + last_indeks[spremenljivka] = 0; + } + //ce prejsnji okvir ni trenutni in ne revert-amo nazaj v levi okvir + if ( (last_indeks[spremenljivka] != last_drop[trenutna_vre_id_revert]) && (indeks_revert != 0) ){ + //uredi velikost okvirja + frame_height(spremenljivka, vre_id, grd_id, revert); + + //ce ni kategorije z odgovorom v okvirju + if(prejsnji_okvir_kat_prisotna[z] === undefined){ + //uredi velikost zadnje obiskanega okvirja + last_frame_height(prejsnji_okvir, spremenljivka, num_grids_global[spremenljivka], cat_margin_left, draggable_global[trenutna_vre_id_revert]); + } + + //uredi velikost celotnega vprasanja + //console.log("Uredi velikost celotnega vprašanja"); + //*******************dinamicna visina celotnega vprasanja glede na vsebino prenesenih desnih okvirjev + //var default_var_height = $('#spremenljivka_'+spremenljivka).height(); + var default_var_height = 1; + dynamic_question_height(spremenljivka, num_grids_global[spremenljivka], default_var_height); + //************************************ konec - dinamicna visina celotnega vprasanja glede na visino prenesenih desnih okvirjev + + } + } + } + return true; + } + else{ + //socket object was returned, + //we can perform additional checks here if we like + //alert(socketObj.attr('id')); would work fine + //console.log(socketObj.attr('id')); + //return false so that the peg does not revert + //console.log("Success!"); + revert = false; + return false; + } + }, + stack: '#half2_'+spremenljivka+' div', + opacity: 0.9, + containment: '#spremenljivka_'+spremenljivka, + }); + + + //dodajanje atributov, ki so prisotni pri vseh ostalih kategorijah odgovorov + //$('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).attr({'value':vre_id, 'name':'vrednost_'+spremenljivka, 'onclick':'checkBranching();', 'missing':other}); + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).attr({'reverted':false,'value':vre_id, 'name':'vrednost_'+spremenljivka, 'onclick':'checkBranching();', 'missing':other}); + //$('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).attr({'reverted':false,'value':vre_id, 'name':'vrednost_'+spremenljivka, 'onclick':'checkBranching(); checkPosition('+tip+','+spremenljivka+','+ vre_id+','+ usr_id+','+anketa+','+site_url+');', 'missing':other}); + //$('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).attr({'reverted':false,'value':vre_id, 'name':'vrednost_'+spremenljivka, 'onclick':'checkBranching(); checkPosition('+tip+','+spremenljivka+','+ vre_id+','+ usr_id+','+anketa+');', 'missing':other}); + + + //ce je tabela vec odgovorov, rabimo clone + if(tip == 16){ + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).draggable( "option", "helper", "clone" ); + } + + //ureditev visine kategorije (div) glede na prisotnost slike ali vecvrsticnega teksta + var default_cat_height = 15; + var final_height = 0; + //var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).text().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora + var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html().length; //hrani stevilo znakov, ki so vpisani v trenutni kategoriji odgovora + //console.log('Število znakov v kategoriji: '+cat_text_length); + + var num_of_br = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' br').length; //hrani stevilo br oz. ročnih vnosov novih vrstic + //console.log('Število br v kategoriji: '+num_of_br); + + var num_imgs = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').length; //hrani stevilo img v interesiranem div-u + //console.log('Število slik v kategoriji @grids: '+num_imgs); + + var max_cat_text_length = 30; //hrani max stevilo dolzine teksta do katerega ni potrebno samodejno dodati
+ + + if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs == 0) ){//ce je tekst daljsi od 30 znakov, nima breakov ali slik dodaj
+ //if( (cat_text_length > max_cat_text_length) ){//ce je tekst daljsi od 35 znakov dodaj
+ //console.log('Tekst je daljši od '+max_cat_text_length+' znakov'); + //var txt2 = txt1.slice(0, 3) + "bar" + txt1.slice(3); + //var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).text(); + var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(); + //console.log(txt); + var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); + //console.log(txt_alt); + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(txt_alt); + final_height = final_height + default_cat_height + 25; + //console.log(final_height); + } + /* else if( (cat_text_length > max_cat_text_length) && (num_of_br == 0) && (num_imgs != 0) ){//ce je tekst daljsi od 35 znakov, nima breakov, ima pa sliko dodaj
+ + var txt = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(); + console.log(txt); + var n_img_start = txt.search(""); + console.log(n_img_start); + console.log(n_img_end); + //var txt_alt = txt.slice(0, max_cat_text_length) + "
" + txt.slice(max_cat_text_length); + //console.log(txt_alt); + //$('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).html(txt_alt); + //final_height = final_height + default_cat_height + 25; + //console.log(final_height); + + } */ + + + if (num_imgs != 0){ // ce imamo sliko + + var img_height = 0; + //var max_width = $('.ranking').width(); + var max_width = 230; + var img = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img'); + var img_width = img.width(); + //console.log("img_width: "+img_width); + + var img_height = img.height(); + //console.log("img_height: "+img_height); + + if (img_width > max_width){ + img_height = (img_height / img_width) * max_width; + img.css({width: max_width}); + img.css({height: img_height}); + //$('#vre_id_'+vre_id).css({height: height}); + //console.log("Vecji od max width"); + } + + //ureditev mobilne različice prikazovanja slik znotraj kategorij odgovorov +/* if (mobile == 1){ //ce je mobilnik + img_height = (img_height / img_width) * 100; + img_width = 100; + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').attr('style', 'margin: auto !important'); //dodaj atribut + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id+' img').css({'height':img_height,'width':img_width}); //ustrezno spremeni visino in sirino slike + } */ + //ureditev mobilne različice prikazovanja - konec + + //console.log("img_height: "+img_height); + if(img_height > 25){ //ce je visina slike vecja od default visine kategorije + final_height = final_height + img_height; + } + + + + //ureditev visine variable_holder, ki je znotraj okvirja !!!!!!!!!! + //$('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').css({'height':(final_height + img_height)+'px'}); + } + if(num_of_br != 0){ + var br_height = num_of_br*25; + + if (num_imgs == 0){ + final_height = final_height + default_cat_height + br_height; + } + else{ + final_height = final_height + br_height; + } + + + //console.log(final_height); + if( (img_height < 25) && (img_height != 0) ){ + final_height = final_height + img_height; + } + } + if (final_height != 0){ + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).css({'height':final_height}); //dodaj style atributu še novo višino za levi blok + } + +} +//*********************************************************************** +//var cat_total_height_left = 0; //hrani trenutno visino levega okvirja kategorij odgovorov +//*********funkcija, ki skrbi za delovanje drag and drop grid funkcionalnosti +function GridDragDropDelovanjeBox(num_grids, indeks, tip, spremenljivka, site_url, ajax, anketa, usr_id, num_of_cats, mobile){ + //var default_var_height_1 = []; + + //*****za mobilne naprave + var top_cat = -1; + var left_cat = -1; + var default_var_height = 290; //default visina celotnega vprasanja + if (mobile == 0 || mobile == 2){ + top_cat = -6; + top_cat_right = 30; + left_cat = -6; + var default_var_height = 220; //default visina celotnega vprasanja + } + //********************* + //ureditev visine celotnega vprasanja, ce je ta visja od default-a******************************************************************* + //var default_var_height = 287; //default visina celotnega vprasanja + //var default_var_height = 220; //default visina celotnega vprasanja + //var cat_total_height = 0; //hrani trenutno visino celotnega trenutnega vprasanja + //var cat_total_height_left = 0; //hrani trenutno visino levega okvirja kategorij odgovorov + var cat_margin_left = 10 + 5*2 + 1*2; //hrani rob za ureditev visine levega okvirja = margin_spodnji + padding(spredi pa zadi) + border(spredi pa zadi) + neznanka + var cat_max_height = 0; //hrani trenutno najvecjo visino tretnutne kategorije + var grid_title_height = 15 + 5*2 + 1*2; //hrani default visino naslovov gridov oz. okvirjev + //var cat_default_height = 2 + 10 + 15 + 10; //hrani default visino kategorije odgovora = border + padding + notranja visina + spodnji margin + var cat_default_height = 37; + var title_heigth = 26; //visina okvricka z naslovom + var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').height(); //visina naslova vprasanja (besedila vprasanja) + var margin_now = 10; //rob po vsakem okvirju + var cat_default_inline_text_length = 16; //default dolzina teksta v eni vrstici kategorij odgovorov + //console.log("naslov_height: "+naslov_height); + + //ureditev visine puscice med blokoma okvirjev + //var top = $('#spremenljivka_'+spremenljivka+' td.middle img').css('top'); + var variable_holder_height = $('#spremenljivka_'+spremenljivka+' .variable_holder').height(); //visina variable_holder, potrebna za visino puscice med blokoma + //$('#spremenljivka_'+spremenljivka+' td.middle img').css({'top' : (naslov_height + 200) + 'px'}); + $('#spremenljivka_'+spremenljivka+' td.middle img').css({'top' : (naslov_height + variable_holder_height/2) + 'px'}); //visina puscice med blokoma okvirjev + + if (ajax){ + //console.log('Getting data on load'); + $.get(site_url+'/main/survey/ajax.php?a=get_dragdrop1_data', {spremenljivka: spremenljivka, anketa: anketa}, function(data){ //get potrebnih podatkov za resevanje missing + //trenutna visina celotnega vprasanja + var default_var_height = $('#spremenljivka_'+spremenljivka).height(); + //console.log("default_var_height: "+default_var_height + " indeks: "+indeks+" num of grids: "+num_grids); + + if(indeks == 1){//samo enkrat pojdi skozi leve kategorije odgovorov + //if(indeks == num_grids || indeks == num_grids-1 ){ +/* //trenutna visina celotnega vprasanja@indeks = 1 + var default_var_height = $('#spremenljivka_'+spremenljivka).height()); + console.log("default_var_height @ indeks = 1: "+default_var_height); */ + var cat_total_height_left = 0; //hrani trenutno visino levega okvirja kategorij odgovorov + var array_length = data.length; //hrani koliko podatkov je prisotnih v polju s podatki iz baze + var vre_id = []; //polje, ki hrani id-je vrednosti vseh kategorij odgovorov interesirane spremenljivke + //var cat_total_height = 0; //hrani trenutno visino celotnega trenutnega vprasanja + var cat_margin = 30; + + //console.log(array_length); //prikazi koliko podatkov je prisotnih v polju s podatki iz baze + for(var i = 0; i < array_length; i++){ //sprehodi se po vseh vrednostih polja vre_id v levem bloku + vre_id[i] = data[i]; //polje iz podatkov iz baze data[], shrani v polje vre_id[] + + //var cat_height_px = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).css('height'); //visina kategorije z oznako px + //var cat_height = cat_height_px.replace('px',''); //hrani string z visino, kjer odstranimo "px" + var cat_height = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).height(); //visina kategorije + cat_height = parseInt(cat_height); //sprememba stringa s samo visino brez oznake "px" v stevilo + + //console.log('Visina '+(i + 1)+': '+cat_height+' + '+cat_margin_left); + //cat_total_height = cat_total_height + cat_height + cat_margin; //izracun koncne visine vprasanja + + if(mobile == 1){ //ko je mobilnik, uredi velikost okvirja kategorije glede na dolzino besedila + var cat_text_length = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).text().length; //dolzina teksta v kategoriji odgovora + + if(cat_text_length > (cat_default_inline_text_length)*2 ){ //ce je dolzina teksta v kategoriji daljsa 2-krat vec od default (16) + //console.log("Tekst je daljši!"); + //console.log("Dolžina besedila v kategoriji: "+cat_text_length); + var num_of_rows = cat_text_length / cat_default_inline_text_length; + //console.log("num_of_rows: "+num_of_rows); + cat_height = cat_height + 25 * (num_of_rows - 1); //trenutno visino kategorije povecaj za 25 + //console.log("num_of_rows final: "+ (num_of_rows - 1)); + //console.log("cat_height: "+cat_height); + $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id[i]).css({'height':(cat_height)+'px'}); //spremeni visino kategorije + } + } + + cat_total_height_left = cat_total_height_left + cat_height + cat_margin_left; //izracun koncne visine levega okvirja + + //console.log('Total left: '+cat_total_height_left); + + + if (cat_max_height < cat_height){ //ce je maksimalna visina kategorije manjsa od trenutne visine kategorije + cat_max_height = cat_height; //naj bo vrednost max visine kategorije trenutna visina kategorije + } + + + } + //console.log('Total left: '+cat_total_height_left); + + //*************urejanje visine levega okvirja kategorij odgovorov + $('#half_frame_dropping_'+spremenljivka).css({'height':(cat_total_height_left)+'px'});//visina levega okvirja + } + + + + if(indeks == 1){ //samo enkrat pojdi skozi desne okvirje + //if(indeks == num_grids-1 ){ + for(var j = 1; j <= num_grids; j++){ //preglej vse desne okvirje v desnem bloku + //notranja visina trenutnega okvirja*************************************** + //var okvir_height = $('#half2_frame_dropping_'+j+'_'+spremenljivka).css('height'); + //okvir_height = parseInt(okvir_height.replace('px','')); + var okvir_height = $('#half2_frame_dropping_'+j+'_'+spremenljivka).height(); + + okvir_height = okvir_height + 10 + 2; //notranja visina + padding + border + //console.log('Visina desnega okvirja'+j+' : '+okvir_height); + frame_total_height_right[spremenljivka] = frame_total_height_right[spremenljivka] + okvir_height + margin_now + title_heigth; + //console.log('Koncna visina desnega bloka: '+frame_total_height_right[spremenljivka]); + } + //console.log("Desni blok visok ob indeksu 1: "+frame_total_height_right[spremenljivka]); + } + + + default_var_height_1[spremenljivka] = $('#spremenljivka_'+spremenljivka).height(); //belezenje celotne zacetne visine spremenljivke + //default_var_height_1[spremenljivka] = $('#spremenljivka_'+spremenljivka).css('height'); + + if(cat_total_height_left > frame_total_height_right[spremenljivka]){ //ce je trenutna visina levega okvirja z odgovori vecja od koncne visine desnega okvirja + //console.log("Levi okvir vecji od desnega"); + //console.log("Levi visok: "+cat_total_height_left); + //console.log('Zacetna visina celotne spremenljivke: '+default_var_height_1[spremenljivka]); + //ce je koncna visina levega okvirja vecja od default visine celotnega vprasanja + //if( (cat_total_height_left > default_var_height) && (data_after_refresh[spremenljivka] == false) ){ + if( (cat_total_height_left > default_var_height) ){ //ce je koncna visina levega okvirja z odgovori vecja od visine celotnega vprasanja + dynamic_question_height_sub(cat_total_height_left, spremenljivka, default_var_height_1[spremenljivka]); //ustrezno spremeni vesino celotnega vprasanja + }else if(cat_total_height_left < default_var_height_1[spremenljivka]){ //ce je koncna visina levega okvirja z odgovori manjsi od visine celotnega vprasanja + //console.log("default_var_height_1: "+default_var_height_1[spremenljivka]); + dynamic_question_height_sub(cat_total_height_left, spremenljivka, default_var_height_1[spremenljivka]); //ustrezno spremeni vesino celotnega vprasanja + } else{ + //console.log("Tale druga pot"); + dynamic_question_height_sub(cat_total_height_left, spremenljivka, default_var_height_1[spremenljivka]);//ustrezno spremeni vesino celotnega vprasanja + } + //default_var_height_1[spremenljivka] = $('#spremenljivka_'+spremenljivka).css('height'); //belezenje celotne zacetne visine spremenljivke + //console.log('Zacetna visina celotne spremenljivke: '+default_var_height_1[spremenljivka]); + + + //data_after_refresh[spremenljivka] == 0; + //console.log(cat_total_height_left); + //ce je trenutna visina levega okvirja z odgovori manjsa od koncne visine desnega okvirja + }else if(cat_total_height_left < frame_total_height_right[spremenljivka]){ + //console.log("Levi okvir manjsi od desnega"); + $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(frame_total_height_right[spremenljivka] + 50); + frame_total_height_right[spremenljivka] = frame_total_height_right[spremenljivka] + naslov_height; + //console.log("Desni blok visok ob indeksu 1 povečan za naslov: "+frame_total_height_right[spremenljivka]); + //frame_total_height_right[spremenljivka] = frame_total_height_right[spremenljivka] + naslov_height; + $('#spremenljivka_'+spremenljivka).height(frame_total_height_right[spremenljivka] + 50); + //dynamic_question_height_sub(frame_total_height_right[spremenljivka], spremenljivka); + } + + }, "json"); + } + + //default_var_height_1[spremenljivka] = $('#spremenljivka_'+spremenljivka).css('height'); //belezenje celotne zacetne visine spremenljivke + + //************************ konec - ureditev visine celotnega vprasanja, ce je ta visja od default-a + + //console.log("Grid delovanje: "+num_grids); + + $('#half_frame_dropping_'+spremenljivka) + .droppable({ + hoverClass: 'frame_dropping_hover', + drop: function (event, ui) { + checkBranching(); + + //$(ui.draggable).detach().css({top: -6,left: -6}).appendTo(this); + $(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); + var vre_id = ui.draggable.attr('value'); + + if (ajax && tip == 6){ + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop_grid_data_1', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa, indeks: last_indeks[spremenljivka]}); //post-aj potrebne podatke za brisanje + //} + draggableOnDroppable[vre_id][last_indeks[spremenljivka]] = false; //oznacimo, da smo trenutno kategorijo odgovora odstranili iz okvirja + draggableOverDroppable[vre_id][last_indeks[spremenljivka]] = false; + //console.log('draggableOverDroppable['+vre_id+']['+last_indeks[spremenljivka]+']: '+draggableOverDroppable[vre_id][last_indeks[spremenljivka]]) + var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); + var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju + if(prejsnji_okvir_kat_prisotna === undefined && last_indeks[spremenljivka] != 0){ + //console.log("Levi frame last frame func"); + last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); //spremeni visino zadnje obiskanega okvirja + } + dynamic_question_height(spremenljivka, num_grids); + last_indeks[spremenljivka] = 0; + last_drop[vre_id] = 0; + last_vre_id[spremenljivka] = 0; + + } + from_left[vre_id] = true; +/* var default_var_height = $('#spremenljivka_'+spremenljivka).height(); + default_var_height_1[spremenljivka] = default_var_height; */ + }, + out: function (event, ui) { //ob izhodu iz drop zone + //answer_coming[spremenljivka] = true; + //var vre_id = ui.draggable.attr('value'); + //console.log("from_left["+vre_id+"]: "+from_left[vre_id]); + }, + over: function (event, ui) { + var vre_id = ui.draggable.attr('value'); + //potrebno pridobiti informacijo ze tukaj, ker drugace so tezave @ revert v levi okvir + vre_id_global[spremenljivka] = vre_id; + draggable_global[vre_id] = ui.draggable; + } + }); + + + $('#half2_frame_dropping_'+indeks+'_'+spremenljivka) + .droppable({ + //hoverClass: 'frame_ranking_hover', + hoverClass: 'frame_dropping_hover', + tolerance: "pointer", + //accept: '#half_'+spremenljivka+' div', + drop: function (event, ui) { //ob dropanju odgovora v desni blok + checkBranching(); + + if(mobile == 0 || mobile == 2){ + //$(this).toggleClass('frame_dropping_wider'); //spremeni videz trenutnega okvirja + }else if(mobile == 1){ + //$(this).toggleClass('frame_dropping_wider_mobile'); //spremeni videz trenutnega okvirja + } + + + num_grids = num_grids_global[spremenljivka]; + //console.log("Drop"); + var vre_id = ui.draggable.attr('value'); + var other = ui.draggable.attr('missing'); //spremenljivka, ki hrani vrednost atributa missing + var other_present = $(this).children('div').attr('missing'); //missing, ki je trenutno v desnem bloku + //var cat_right = $(this).children('div').css('height'); //ali je prisotna kaksna kategorija v trenuntem desnem okvirju? Undefined = ne + var cat_right = $(this).children('div').height(); //ali je prisotna kaksna kategorija v trenuntem desnem okvirju? Undefined = ne + //var cat_right = $(this).children('div').outerHeight(); //ali je prisotna kaksna kategorija v trenuntem desnem okvirju? Undefined = ne + var vre_id_present = $(this).children('div').attr('value'); //vre_id kategorije odgovora, ki je prisotna v okvirju ob dropu + //var draggable_global[spremenljivka] = ui.draggable; + draggable_global[vre_id] = ui.draggable; + + //*******************dinamicna visina celotnega vprasanja glede na vsebino prenesenih desnih okvirjev + var title_heigth = 26; //visina okvricka z naslovom + var margin_now = 10; //rob po vsakem okvirju + var height_beside = 40; //visina od zacetka vprasanja do prvega okvirja (in malo po zadnjem okvirju) + var final_height_right_block = 0; //hrani koncno visino desnega bloka, torej vseh prisotnih okvirjev + final_height_right_block = final_height_right_block + height_beside; //koncni visini dodamo se "praznino" med zacetkom vprasanja in prvim okvirjem + + for(var j = 1; j <= num_grids; j++){ //preglej vse okvirje + //notranja visina trenutnega okvirja*************************************** + //var okvir_height = $('#half2_frame_dropping_'+j+'_'+spremenljivka).css('height'); + //okvir_height = parseInt(okvir_height.replace('px','')); + var okvir_height = $('#half2_frame_dropping_'+j+'_'+spremenljivka).height(); + //console.log('Visina '+j+' : '+okvir_height); + okvir_height = okvir_height + 10 + 2; //notranja visina + padding + border + //************************************************************************* + final_height_right_block = final_height_right_block + okvir_height + margin_now + title_heigth; + //console.log('Koncna visina desnega bloka: '+final_height_right_block); + } + + //trenutna visina celotnega vprasanja + //var default_var_height = $('#spremenljivka_'+spremenljivka).css('height'); + //default_var_height = parseInt(default_var_height.replace('px','')); + var default_var_height = $('#spremenljivka_'+spremenljivka).height(); + //console.log('Default: '+default_var_height); + //console.log('Final: '+final_height_right_block); + if(final_height_right_block > default_var_height){ + $('#spremenljivka_'+spremenljivka).css({'height':final_height_right_block+'px'}); + //da ne bo pri mobilnikih prevec skrito vprasanje + $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').css({'height':(final_height_right_block - 100)+'px'}); + + } + //************************************ konec - dinamicna visina celotnega vprasanja glede na visino prenesenih desnih okvirjev + + + //$(ui.draggable).detach().css({top: -6,left: -6}).appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto + //$(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto + + //ce je tabela - en odgovor + if(tip == 6){ + //$(ui.draggable).detach().css({top: top_cat,left: left_cat}).appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto + //$(ui.draggable).detach().css({top: 30, left:-6}).appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto + if (cat_right){ //ce je ze nekaj v okvirju + //$(ui.draggable).detach().css({top: (top_cat_right + cat_right), left:-6}).appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto tako, da je nad prejsnjim + $(ui.draggable).detach().css({top: (top_cat_right), left:-6}).prependTo(this); //pozicioniraj kategorijo odgovora na pravo mesto tako, da je nad prejsnjim + }else{ + $(ui.draggable).detach().css({top: top_cat_right, left:-6}).appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto + } + + +/* if(cat_right == null){ + $(ui.draggable).detach().css({top: ui.draggable.height(),left: left_cat}).appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto + } + $(ui.draggable).css({margin: '10px auto 0px auto'}); */ + if (ajax){ + $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop_grid', {vre_id_present: vre_id_present, tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id, indeks: indeks, cat_right: cat_right, last_vre_id: last_vre_id[spremenljivka]}); //post-aj potrebne podatke za belezenje v bazo + if(last_drop[vre_id] != indeks || last_drop[vre_id] != 0){ + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop_grid_data_1', {spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa, indeks: last_drop[vre_id]}); //post-aj potrebne podatke za brisanje + } + } + } + else if(tip == 16 && draggableOnDroppable[vre_id][indeks] == false){ //ce je tabela - vec odgovorov in odgovora ni v trenutnem okvirju, uredi clone + var visina_test = ui.draggable.css('height'); + //$(ui.draggable.clone()).detach().css({top: top_cat,left: left_cat, height: visina_test}).appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto in dodaj ustrezno visino + $(ui.draggable.clone()).detach().css({top: top_cat_right, left: left_cat, height: visina_test}).prependTo(this); //pozicioniraj kategorijo odgovora na pravo mesto in dodaj ustrezno visino + //$(ui.draggable).detach().css({top: 10,left: 10}).appendTo(this); //pozicioniraj kategorijo odgovora na pravo mesto + if (ajax){ + $.post(site_url+'/main/survey/ajax.php?a=accept_dragdrop_grid', {vre_id_present: vre_id_present, tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, anketa: anketa, usr_id: usr_id, indeks: indeks, cat_right: cat_right, last_vre_id: last_vre_id[spremenljivka]}); //post-aj potrebne podatke za belezenje v bazo + } + } + + if(last_indeks[spremenljivka] !== undefined){ + var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); + var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju + //console.log("last_indeks[spremenljivka][indeks]: "+last_indeks[spremenljivka][indeks]); + if(last_indeks[spremenljivka] == 0 || prejsnji_okvir_kat_prisotna === undefined){ + last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); //spremeni visino zadnje obiskanega okvirja + } + } + + last_drop[vre_id] = indeks; //zabelezi indeks okvirja zadnjega drop-a + draggableOnDroppable[vre_id][indeks] = true; //oznacimo, da je trenutna kategorija odgovora v okvirju + if(tip == 6){ + from_left[vre_id] = false; + } + }, + over: function (event, ui) { //ob prenosu trenutne kategorije odgovora nad okvirjem + num_grids = num_grids_global[spremenljivka]; + checkBranching(); + var vre_id = ui.draggable.attr('value'); + var vre_id_present = $(this).children('div').attr('value'); //vre_id kategorije odgovora, ki je prisotna v okvirju ob dropu + vre_id_global[spremenljivka] = vre_id; + var trenutni_okvir = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka); + //console.log("from_left["+vre_id+"]: "+from_left[vre_id]); + + if (last_indeks[spremenljivka] == 0 && tip == 6){ //ce prenasamo kategorije odgovora iz levega okvirja + last_indeks[spremenljivka] = indeks; //zabelezi indeks prejsnjega okvirja + + }else { + + var last_vrednost_id_temp = last_vre_id[spremenljivka]; + var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); + + //if(tip == 16 || tip == 6){ + if(tip == 6){ + var prejsnji_okvir_kat_prisotna = []; + var stevilo_prisotnih = prejsnji_okvir.children('div').length; + //console.log(stevilo_prisotnih); + for(var z = 1; z <= stevilo_prisotnih; z++){ + //prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju + prejsnji_okvir_kat_prisotna[z] = prejsnji_okvir.children('div :nth-child('+z+')').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju, kateri odgovori so prisotni + //console.log("prejsnji_okvir_kat_prisotna["+z+"]: "+prejsnji_okvir_kat_prisotna[z]); + + if(last_vrednost_id_temp != 0){ + //ce v prejsnjem okvirju ni nicesar in (v prejsnjem okvirju ni nicesar ali je identifikacija ista trenutni) + if( (draggableOnDroppable[last_vrednost_id_temp][indeks] == false) && ( (prejsnji_okvir_kat_prisotna === undefined) || (prejsnji_okvir_kat_prisotna == vre_id) ) ){ + if ( (tip == 16 && draggableOnDroppable[vre_id][last_indeks[spremenljivka]] == false) || tip == 6 ){ + //spremeni visino prejsnjega okvirja + last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); + //console.log("Spreminjam prejsnji okvir"); + } + } + } + } + } + } + + + if(vre_id_present !== undefined){ + //ce ni se nicesar v trenutnem okvirju, ali odgovor je na poti v okvir in je vprasanje tipa 16 (tabela - vec odgovorov) ali 6 (tabela - en odgovor) + if (draggableOnDroppable[vre_id_present][indeks] != true || (draggableOverDroppable[vre_id][indeks] == false && (tip == 16 || tip == 6) ) ){ + //zabelezi, da je odgovor nad okvirjem + draggableOverDroppable[vre_id][indeks] = true; + if ((tip == 16 && draggableOnDroppable[vre_id][indeks] == false) || tip == 6){ + //uredi visino okvirja in celotnega vprasanja + frame_and_question_height(trenutni_okvir, spremenljivka, num_grids, cat_margin_left, cat_default_height, ui.draggable); + if(from_left[vre_id] != false){ + dynamic_question_height(spremenljivka, num_grids); + } + + //console.log("Tukaj 1"); + } + } + }else{ + + if (vre_id_present === undefined || (draggableOverDroppable[vre_id][indeks] == false && (tip == 16 || tip == 6) ) ){ + //zabelezi, da je odgovor nad okvirjem + draggableOverDroppable[vre_id][indeks] = true; + if ( (tip == 16 && (draggableOnDroppable[vre_id][indeks] == false || last_drop[vre_id] == 0 )) || tip == 6){ + //uredi visino okvirja in celotnega vprasanja + frame_and_question_height(trenutni_okvir, spremenljivka, num_grids, cat_margin_left, cat_default_height, ui.draggable); + if(from_left[vre_id] != false){ + dynamic_question_height(spremenljivka, num_grids); + } + //console.log("Tukaj 2"); + } + } + } + + //spremeni videz trenutnega okvirja + if(draggableOverDroppable[vre_id][indeks] == true){ + if(mobile == 0 || mobile == 2){ + //$(this).toggleClass('frame_dropping_wider'); + } + else if(mobile == 1){ + //$(this).toggleClass('frame_dropping_wider_mobile'); + } + } + + last_indeks[spremenljivka] = indeks; //zabelezi indeks (trenutnega oz. bodocega) prejsnjega okvirja + cat_pushed[spremenljivka] = false; + }, + out: function (event, ui) { //ob izhodu iz drop zone + num_grids = num_grids_global[spremenljivka]; + var vre_id = ui.draggable.attr('value'); + var vre_id_present = $(this).children('div').attr('value'); //vre_id kategorije odgovora, ki je prisotna v okvirju ob dropu + var prejsnji_okvir = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka); + var prejsnji_okvir_kat_prisotna = prejsnji_okvir.children('div').attr('value'); //belezi, ce je kaj prisotnega v prejsnjem okvirju + //console.log("Out"); + //draggableOnDroppable[vre_id] = false; //oznacimo, da smo tretnutno kategorijo odgovora odstranili iz okvirja + + + //if(draggableOverDroppable[vre_id] == true && tip == 16){ + if(draggableOverDroppable[vre_id][indeks] == true && ( (tip == 16 && draggableOnDroppable[vre_id][last_indeks[spremenljivka]] == false) || tip == 6) ){ + //console.log("Last frame out pri indeksu: "+last_indeks[spremenljivka]); + last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, ui.draggable); + } + last_vre_id[spremenljivka] = vre_id; + last_indeks[spremenljivka] = indeks; + if( tip == 6 || (tip == 16 && draggableOnDroppable[vre_id][last_indeks[spremenljivka]] == false) ){ + draggableOnDroppable[vre_id][indeks] = false; //oznacimo, da trenutne kategorije odgovora ni v okvirju + } + draggableOverDroppable[vre_id][indeks] = false; + draggable_global[vre_id] = ui.draggable; + + //spremeni videz prejsnjega okvirja + if(draggableOverDroppable[vre_id][indeks] == false){ + if(mobile == 0 || mobile == 2){ + //prejsnji_okvir.toggleClass('frame_dropping_wider'); + }else if(mobile == 1){ + //prejsnji_okvir.toggleClass('frame_dropping_wider_mobile'); + } + } + + } + }); + + //********************** odstranitev odgovorov iz desnih okvirjev @ tabela - vec odgovorov + // ce je tabela - vec odgovorov + if(tip == 16){ //uredi odstranjevanje kategorij odgovorov iz desnega okvirja ob kliku na njih + + $('#half2_frame_dropping_'+indeks+'_'+spremenljivka).click(function(){ + + $('#half2_frame_dropping_'+indeks+'_'+spremenljivka).children().click(function(){ //ob kliku na kategorijo odgovora + + var index1 = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka).children().index(this); //indeks klikanega odgovora + var prejsnji_okvir = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka); // + var vre_id = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka+' div:nth-child('+(index1 + 1)+')').attr('value'); + var draggable = $('#half2_frame_dropping_'+indeks+'_'+spremenljivka+' div:nth-child('+(index1 + 1)+')'); + + $('#half2_frame_dropping_'+indeks+'_'+spremenljivka+' div:nth-child('+(index1 + 1)+')').detach();//odstrani odgovor iz okvirja + + if (ajax){ //odstrani podatek o odgovoru iz baze + $.post(site_url+'/main/survey/ajax.php?a=delete_dragdrop_grid_data', {tip: tip, spremenljivka: spremenljivka, vre_id: vre_id, usr_id: usr_id, anketa: anketa, indeks: indeks}); //post-aj potrebne podatke za brisanje + } + console.log(draggableOnDroppable[vre_id][indeks]); + last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, draggable); //spremeni visino zadnje obiskanega okvirja + draggableOnDroppable[vre_id][indeks] = false; //oznacimo, da smo trenutno kategorijo odgovora odstranili iz okvirja + //console.log("draggableOnDroppable["+vre_id+"]["+indeks+"]: "+draggableOnDroppable[vre_id][indeks]); + draggableOverDroppable[vre_id][indeks] = false; + from_left[vre_id] = true; + dynamic_question_height(spremenljivka, num_grids); + //console.log("vre_id: "+vre_id); + }); + + }); + + } + //********************** konec - odstranitev odgovorov iz desnih okvirjev @ tabela - vec odgovorov +} +//************************************************************************************** + +function frame_and_question_height(trenutni_okvir, spremenljivka, num_grids, cat_margin_left, cat_default_height, draggable){ + //console.log('Frame and question height'); + //uredi visino okvirja in celotnega vprasanja + var other = draggable.attr('missing'); //spremenljivka, ki hrani vrednost atributa missing + var other_present = trenutni_okvir.children('div').attr('missing'); //missing, ki je trenutno v desnem bloku + + //***************** glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja + //visina trenutno prenesenega odgovora************* + //var cat_height_px_now = draggable.css('height'); //visina kategorije z oznako px + //var cat_height_now = cat_height_px_now.replace('px',''); //hrani string z visino, kjer odstranimo "px" + var cat_height_now = draggable.height(); //visina kategorije + //cat_height_now = parseInt(cat_height_now); //sprememba stringa s samo visino brez oznake "px" v stevilo + //*************************************************visina trenutno prenesenega odgovora - konec + + //cat_height_now = cat_height_now + cat_margin_left; //izracun koncne visine desnega okvirja + //cat_height_now = cat_height_now + cat_default_height; //izracun koncne visine desnega okvirja + //console.log(cat_height_now); + + //var cat_right = trenutni_okvir.children('div').css('height');//belezi visino kategorije odgovora, ce je ta prisotna v trenutnem desnem okvirju + var cat_right = trenutni_okvir.children('div').height();//belezi visino kategorije odgovora, ce je ta prisotna v trenutnem desnem okvirju + + //ce je v trenutnem desnem okvirju ze prisotna kategorija odgovora, trenutni visini okvirja dodaj se visino trenutne kategorije + if(cat_right){ + //console.log('Ima children'); + //var whole_heigth = trenutni_okvir.css('height'); + //whole_heigth = whole_heigth.replace('px',''); + var whole_heigth = trenutni_okvir.height(); + //console.log(whole_heigth); + cat_height_now = cat_height_now + cat_margin_left; //izracun koncne visine desnega okvirja, ce imamo ze kategorije v okvirju + //var okvir_height = parseInt(whole_heigth) + parseInt(cat_height_now); + var okvir_height = whole_heigth + cat_height_now; + trenutni_okvir.css({'height':(okvir_height)+'px'}); //visina desnega okvirja + //console.log('Koncna visina: '+(okvir_height)); + }else{ //drugace + cat_height_now = cat_height_now + cat_default_height; //izracun koncne visine desnega okvirja, ce ni kategorij v okvirju + if (cat_height_now < 15){ //ce je visina trenutne kategorije odgovova manjsa od 15, prej 20 + cat_height_now = 15; //naj bo visina okvirja 15px, prej 20px + } + trenutni_okvir.css({'height':(cat_height_now)+'px'}); //visina trenutnega desnega okvirja + //console.log('Koncna visina: '+(cat_height_now)); + } + //************************************ konec - glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja + //*******************dinamicna visina celotnega vprasanja glede na vsebino prenesenih desnih okvirjev + //trenutna visina celotnega vprasanja + //var default_var_height = $('#spremenljivka_'+spremenljivka).height(); + //var default_var_height = 1; + //dynamic_question_height(spremenljivka, num_grids, default_var_height); + //************************************ konec - dinamicna visina celotnega vprasanja glede na visino prenesenih desnih okvirjev +} + +//funkcija za urejanje visine okvirjev +function frame_height(spremenljivka, vre_id, grd_id, revert){ + + //***************** glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja + //visina trenutno prenesenega odgovora************* + var cat_default_height = 37; + //var cat_height_px_now = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).css('height'); //visina trenutne kategorije odgovora + //var cat_height_now = cat_height_px_now.replace('px',''); //hrani string z visino, kjer odstranimo "px" + var cat_height_now = $('#spremenljivka_'+spremenljivka+'_vrednost_'+vre_id).height(); //visina trenutne kategorije odgovora + //cat_height_now = parseInt(cat_height_now); //sprememba stringa s samo visino brez oznake "px" v stevilo + //*************************************************visina trenutno prenesenega odgovora - konec + //console.log("Frame height"); + //console.log("cat_height_now: "+cat_height_now); + //console.log("spremenljivka: "+spremenljivka); + //console.log("vre_id: "+vre_id); + + //cat_height_now = cat_height_now + cat_margin_left; //izracun koncne visine desnega okvirja + //cat_height_now = cat_height_now + cat_default_height; //izracun koncne visine desnega okvirja + //console.log(cat_height_now); + + //var cat_right = $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).children('div').css('height');//belezi visino kategorije odgovora, ce je ta prisotna v trenutnem desnem okvirju + var cat_right = $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).children('div').height();//belezi visino kategorije odgovora, ce je ta prisotna v trenutnem desnem okvirju + + //ce je v trenutnem desnem okvirju ze prisotna kategorija odgovora, trenutni visini okvirja dodaj se visino trenutne kategorije + if(cat_right || revert){ + //console.log('Ima children'); + //var whole_heigth = $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).css('height'); + //whole_heigth = whole_heigth.replace('px',''); + var whole_heigth = $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).height(); + //console.log(whole_heigth); + cat_height_now = cat_height_now + cat_margin_left; //izracun koncne visine desnega okvirja, ce imamo ze kategorije v okvirju + var okvir_height = parseInt(whole_heigth) + parseInt(cat_height_now); + $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).css({'height':(okvir_height)+'px'}); //visina desnega okvirja + //console.log('Koncna visina: '+(okvir_height)); + + }else{ //drugace + cat_height_now = cat_height_now + cat_default_height; //izracun koncne visine desnega okvirja, ce ni kategorij v okvirju + if (cat_height_now < 15){ //ce je visina trenutne kategorije odgovova manjsa od 15, prej 20 + cat_height_now = 15; //naj bo visina okvirja 15px, prej 20px + } + $('#half2_frame_dropping_'+grd_id+'_'+spremenljivka).css({'height':(cat_height_now)+'px'}); //visina trenutnega desnega okvirja + //console.log('Koncna visina okvirja z odgovorom: '+(cat_height_now)); + } + //************************************ konec - glede na visino trenutno prenesenih kategorij odgovora, povecaj visino okvirja + + //console.log("cat_height_now ["+vre_id+"]: "+cat_height_now); +} +//************** konec - funkcije za urejanje visine okvirjev + +//***************funkcija za urejanje visine zadnje obiskanega okvirja @ drag and drop +function last_frame_height(prejsnji_okvir, spremenljivka, num_grids, cat_margin_left, draggable){ + //console.log('last_frame_height: '+prejsnji_okvir.children('div').attr('value')); + //console.log("num_grids v last frame: "+num_grids); + //console.log('last_frame_height '); + //****glede na odstrajeno kategorijo odgovora, trenutni visini okvirja odstrani visino odstranjene kategorije + //var trenutna_visina_okvirja = $('#half2_frame_dropping_'+last_indeks[spremenljivka]+'_'+spremenljivka).css('height'); + //var trenutna_visina_okvirja = prejsnji_okvir.css('height'); + var trenutna_visina_okvirja = prejsnji_okvir.height(); + //console.log("trenutna_visina_okvirja: "+trenutna_visina_okvirja); + //var trenutna_visina_kategorije = draggable.css('height')//visina odnesene kategorije odgovora + var trenutna_visina_kategorije = draggable.height();//visina odnesene kategorije odgovora + //trenutna_visina_okvirja = trenutna_visina_okvirja.replace('px',''); + //trenutna_visina_kategorije = trenutna_visina_kategorije.replace('px',''); + //koncna_visina_zapuscenega_okvirja = parseInt(trenutna_visina_okvirja) - parseInt(trenutna_visina_kategorije) - cat_margin_left; + koncna_visina_zapuscenega_okvirja = trenutna_visina_okvirja - trenutna_visina_kategorije - cat_margin_left; + + if (koncna_visina_zapuscenega_okvirja < 15){ + koncna_visina_zapuscenega_okvirja = 15; + } + + prejsnji_okvir.css({'height':(koncna_visina_zapuscenega_okvirja)+'px'}); //visina desnega okvirja + + + //var default_var_height = default_var_height_1[spremenljivka]; + //console.log(default_var_height); + //$('#spremenljivka_'+spremenljivka).css({'height':(default_var_height - koncna_visina_zapuscenega_okvirja + 50)+'px'}); + //****** konec - glede na odstrajeno kategorijo odgovora, trenutni visini okvirja odstrani visino odstranjene kategorije + + //*******************dinamicna visina celotnega vprasanja glede na vsebino prenesenih desnih okvirjev + //var default_height_no_px = default_var_height_1[spremenljivka]; + //var default_height_no_px = 0; + + //dynamic_question_height(spremenljivka, num_grids); + //dynamic_question_height(spremenljivka, num_grids, default_height_no_px); + + //************************************ konec - dinamicna visina celotnega vprasanja glede na visino prenesenih desnih okvirjev +} +//*************** konec - funkcija za urejanje visine zadnje obiskanega okvirja + +//********* funkcija, ki skrbi za koncno ureditev visine celotnega vprasanja glede na visino (levega ali desnega) bloka @ drag and drop +//function dynamic_question_height_sub(frame_height, spremenljivka, default_height_no_px){ +function dynamic_question_height_sub(frame_height, spremenljivka){ + //var default_height_no_px = default_var_height_1[spremenljivka]; + + //console.log("default_height_no_px before: "+default_height_no_px); + //default_var_height_1[spremenljivka] = $('#spremenljivka_'+spremenljivka).css('height'); + //default_height_no_px = parseInt(default_height_no_px.replace('px','')); + + default_height_no_px = $('#spremenljivka_'+spremenljivka).height(); + + var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').height(); + //console.log("default_height_no_px dyn: "+default_height_no_px); + //console.log("tallest frame_height: "+frame_height); + //console.log("Dynamic question height sub"); + + if( (frame_height + naslov_height) > default_height_no_px){ //ce je koncna visina desnega dela z okvirji vecji od trenutne default visine celotnega vprasanja + $('#spremenljivka_'+spremenljivka).height(frame_height + naslov_height + 50); + //console.log("Spreminjam 1"); + //da ne bo pri mobilnikih prevec skrito vprasanje, spremeni visino variable_holder + $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(frame_height + 25); + }else if((frame_height + naslov_height) < default_height_no_px){ //ce je koncna visina desnega dela z okvirji manjsi od trenutne default visine celotnega vprasanja + //$('#spremenljivka_'+spremenljivka).css({'height':(default_height_no_px + 50)+'px'}); + $('#spremenljivka_'+spremenljivka).height(default_height_no_px + 50); + //console.log("Spreminjam 2"); + //da ne bo pri mobilnikih prevec skrito vprasanje, spremeni visino variable_holder + $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(default_height_no_px - naslov_height + 25); + + } +} + +//*********** @ drag and drop +//function dynamic_question_height(spremenljivka, num_grids, default_height_flag){ +function dynamic_question_height(spremenljivka, num_grids){ + //*******************dinamicna visina celotnega vprasanja glede na vsebino prenesenih desnih okvirjev + var naslov_height = $('#spremenljivka_'+spremenljivka+' .naslov').height(); + var title_heigth = 26; //visina okvricka z naslovom + var margin_now = 10; //rob po vsakem okvirju + var height_beside = 40; //visina od zacetka vprasanja do prvega okvirja (in malo po zadnjem okvirju) + var final_height_right_block = 0; //hrani koncno visino desnega bloka, torej vseh prisotnih okvirjev + final_height_right_block = final_height_right_block + height_beside; //koncni visini dodamo se "praznino" med zacetkom vprasanja in prvim okvirjem + + //var frame_height_left = $('#half_frame_dropping_'+spremenljivka).css('height'); //visina celotnega levega okvirja + //frame_height_left = parseInt(frame_height_left.replace('px','')); + var frame_height_left = $('#half_frame_dropping_'+spremenljivka).height(); //visina celotnega levega okvirja + frame_height_left= frame_height_left + 10 + 2; //notranja visina + padding + border + frame_height_left = frame_height_left + height_beside; + //console.log('Koncna visina levega bloka: '+frame_height_left); + + for(var j = 1; j <= num_grids; j++){ //preglej vse okvirje + //notranja visina trenutnega okvirja*************************************** + //var okvir_height = $('#half2_frame_dropping_'+j+'_'+spremenljivka).css('height'); + var okvir_height = $('#half2_frame_dropping_'+j+'_'+spremenljivka).height(); + //okvir_height = parseInt(okvir_height.replace('px','')); + //console.log('Visina '+j+' : '+okvir_height); + okvir_height = okvir_height + 10 + 2; //notranja visina + padding + border + + final_height_right_block = final_height_right_block + okvir_height + margin_now + title_heigth; + //console.log('Koncna visina desnega bloka: '+final_height_right_block); + } + //console.log('Koncna visina desnega bloka: '+final_height_right_block); + /* if (default_height_flag == 1){ + //trenutna visina celotnega vprasanja + var default_var_height = $('#spremenljivka_'+spremenljivka).height(); + }else if(default_height_flag == 0){ + var default_var_height = default_var_height_1[spremenljivka]; + } */ + + + var default_var_height_now = $('#spremenljivka_'+spremenljivka).height(); + //console.log("default_var_height: "+default_var_height_now); + var default_var_height = $('#spremenljivka_'+spremenljivka).height(); + + //ce je visina okvirja (levi ali desni) z naslovom vprasanja vecja od visine celotnega vprasanja + if( (default_var_height < (frame_height_left + naslov_height)) || (default_var_height < (final_height_right_block + naslov_height)) ){ + if(frame_height_left < final_height_right_block){ + //console.log("Levi manjsi od desnega"); + //dynamic_question_height_sub(final_height_right_block, spremenljivka, default_var_height); //glede na visino desnega bloka uredi velikost celotnega vprasanja + dynamic_question_height_sub(final_height_right_block, spremenljivka); //glede na visino desnega bloka uredi velikost celotnega vprasanja + }else if(frame_height_left > final_height_right_block){ + //console.log("Levi vecji od desnega"); + //dynamic_question_height_sub(frame_height_left, spremenljivka, default_var_height); //glede na visino levega bloka uredi velikost celotnega vprasanja + dynamic_question_height_sub(frame_height_left, spremenljivka); //glede na visino levega bloka uredi velikost celotnega vprasanja + } + }else if (frame_height_left < final_height_right_block){ + $('#spremenljivka_'+spremenljivka).height(final_height_right_block + naslov_height + 50); + //console.log("Spreminjam A1"); + //da ne bo pri mobilnikih prevec skrito vprasanje, spremeni visino variable_holder + $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(final_height_right_block + 25); + }else if (frame_height_left > final_height_right_block){ + $('#spremenljivka_'+spremenljivka).height(frame_height_left + naslov_height + 50); + //console.log("Spreminjam A2"); + //da ne bo pri mobilnikih prevec skrito vprasanje, spremeni visino variable_holder + $('#spremenljivka_'+spremenljivka+' div.variable_holder.clr').height(frame_height_left + 25); + } + + //************************************ konec - dinamicna visina celotnega vprasanja glede na visino prenesenih desnih okvirjev +} \ No newline at end of file diff --git a/admin/survey/script/GDPR.js b/admin/survey/script/GDPR.js new file mode 100644 index 0000000..7ac7a24 --- /dev/null +++ b/admin/survey/script/GDPR.js @@ -0,0 +1,207 @@ +/* FUNKCIJE ZA UREJANJE GDPR NASTAVITEV */ +function editGDPRSurvey(ank_id){ + + var form_serialize = $('form[name="settingsanketa_'+ank_id+'"]').serializeArray(); + form_serialize[form_serialize.length] = {name: 'ank_id', value: ank_id}; + + $.post('ajax.php?t=gdpr&a=gdpr_edit_anketa&s=1', form_serialize, function(){ + window.location.reload(); + }); +} +// Prikazemo/skrijemo nastavitve katere osebne podatke (gdpr) zbiramo +function showGDPRSettings(){ + + // Prikazemo/skrijemo identifikatorje + var is_gdpr = $("input[name='is_gdpr']:checked").val(); + + var is_identifier = 0; + is_identifier += parseInt($("input[name='name']:checked").val()); + is_identifier += parseInt($("input[name='email']:checked").val()); + is_identifier += parseInt($("input[name='location']:checked").val()); + is_identifier += parseInt($("input[name='phone']:checked").val()); + is_identifier += parseInt($("input[name='web']:checked").val()); + is_identifier += parseInt($("input[name='other']:checked").val()); + + if(is_gdpr == '1'){ + $("#gdpr_data_identifiers").show('fast'); + } + else{ + $("#gdpr_data_identifiers").hide('fast'); + } + + if(is_identifier > 0 && is_gdpr == '1'){ + $("#gdpr_data_settings").show('fast'); + $("#gdpr_additional_info").show('fast'); + $("#gdpr_export_individual").show('fast'); + $("#gdpr_export_activity").show('fast'); + } + else{ + $("#gdpr_data_settings").hide('fast'); + $("#gdpr_additional_info").hide('fast'); + $("#gdpr_export_individual").hide('fast'); + $("#gdpr_export_activity").hide('fast'); + } +} +// Prikazemo/skrijemo opozorilo za uporabo gdpr templata +function showGDPRTemplate(val){ + + if(val == '1'){ + $("#gdpr_data_template").show(); + $("#gdpr_data_template_warning").hide(); + } + else{ + $("#gdpr_data_template").hide(); + $("#gdpr_data_template_warning").show(); + } +} +// Prikazemo preview uvoda v gdpr nasatvitvah ankete +function previewGDPRIntro(){ + + var ank_id = $("input[name=anketa]").val(); + + $('#fullscreen').html('').fadeIn('slow').draggable({ + delay: 100 + }); + $('#fade').fadeTo('slow', 1); + $('#fullscreen').load('ajax.php?t=gdpr&a=gdpr_preview_intro', { + ank_id: ank_id + }).draggable({ + delay: 100 + }); +} +// Prikazemo/skrijemo textarea za drugo pri zbiranju gdpr podatkov +function toggleGDPROtherText(obj){ + + var val = $(obj).val(); + + // Enable text input + if(val == '1'){ + $('#other_text').show('fast'); + } + // Disable text input + else{ + $('#other_text').hide('fast'); + } +} +// Enablamo/disablamo text polja pri dodatnih informacijah +function toggleGDPRInfoText(obj){ + + var name = $(obj).attr("name"); + var val = $(obj).val(); + + // Enable text input + if(val == '1'){ + $(".line_text." + name).prop("disabled", false); + } + // Disable text input + else{ + $(".line_text." + name).prop("disabled", true); + } +} + +// Prikazemo preview posameznega izvoza +function previewGDPRExport(type){ + + var ank_id = $("input[name=anketa]").val(); + + $('#fullscreen').html('').fadeIn('slow').draggable({ + delay: 100 + }); + $('#fade').fadeTo('slow', 1); + $('#fullscreen').load('ajax.php?t=gdpr&a=gdpr_preview_export', { + ank_id: ank_id, + type: type + }).draggable({ + delay: 100 + }); +} + +// Nastavimo anketo da je GDPR +function setGDPRSurvey(ank_id, checked){ + + var gdpr = '0'; + if(checked) + gdpr = '1'; + + $("#gdpr_nastavitve").load('ajax.php?t=gdpr&a=gdpr_add_anketa', {ank_id: ank_id, value:gdpr}); +} + +// Urejamo GDPR profilne nastavitve avtorja +function editGDPRProfile(){ + + var form_serialize = $("#form_gdpr_user_settings").serializeArray(); + + $("#gdpr_nastavitve").load('ajax.php?t=gdpr&a=gdpr_edit_user&s=1', form_serialize); +} +// Prikazemo/skrijemo nastavitve katere osebne podatke (gdpr) zbiramo +function editGDPRAuthority(country){ + + $("#gdpr_authority_info").load('ajax.php?t=gdpr&a=gdpr_edit_authority', {country: country}); +} +// Prikazemo/skrijemo nastavitve organizacije in dpo-ja (ce je zasebnik) +function toggleGDPRDPO(){ + + var organization = $('input[name=type]:checked').val(); + var has_dpo = $('input[name=has_dpo]:checked').val(); + + if(organization == '1' || has_dpo == '1') + $("#gdpr_dpo").show(); + else + $("#gdpr_dpo").hide(); + + if(organization == '1'){ + $("#gdpr_organization").show(); + $("#gdpr_has_dpo").hide(); + } + else{ + $("#gdpr_organization").hide(); + $("#gdpr_has_dpo").show(); + } +} +// Prikazemo/skrijemo nastavitve organizacije in dpo-ja (ce je zasebnik) +function toggleGDPRHasDPO(){ + + var has_dpo = $('input[name=has_dpo]:checked').val(); + + if(has_dpo == '1') + $("#gdpr_dpo").show(); + else + $("#gdpr_dpo").hide(); +} + +// Nastavimo zahtevo za izbris da je opravljena +function setGDPRRequestStatus(request_id, checked){ + + var value = '0'; + if(checked) + value = '1'; + + $("#gdpr_nastavitve").load('ajax.php?t=gdpr&a=gdpr_request_done', {request_id: request_id, value:value}); +} +// Nastavimo zahtevo za izbris da je opravljena - znotraj ankete +function setGDPRRequestStatusSurvey(request_id, checked){ + + var ank_id = $("input[name=anketa]").val(); + + var value = '0'; + if(checked) + value = '1'; + + $("#survey_requests").load('ajax.php?t=gdpr&a=gdpr_request_done_survey', {request_id: request_id, value:value, ank_id:ank_id}); +} + +// Nastavimo komentar zahtevi za izbris +function setGDPRRequestComment(request_id, text){ + + var value = text; + + $("#anketa_edit").load('ajax.php?t=gdpr&a=gdpr_request_comment', {request_id: request_id, value:value}); +} +// Nastavimo komentar zahtevi za izbris - znotraj ankete +function setGDPRRequestCommentSurvey(request_id, text){ + + var ank_id = $("input[name=anketa]").val(); + var value = text; + + $("#survey_requests").load('ajax.php?t=gdpr&a=gdpr_request_comment_survey', {request_id: request_id, value:value, ank_id:ank_id}); +} diff --git a/admin/survey/script/HeatMap/HeatMapCanvasAdmin.js b/admin/survey/script/HeatMap/HeatMapCanvasAdmin.js new file mode 100644 index 0000000..692bf43 --- /dev/null +++ b/admin/survey/script/HeatMap/HeatMapCanvasAdmin.js @@ -0,0 +1,308 @@ +var heatmap_num_clicksGlobal = []; //belezi stevilo klikov na canvas +var mousePos = []; //belezi koordinate izbranih tock +var indeksMousePos = []; + +//inicializacija canvas-a +function InitHeatMapCanvas(spremenljivka, quick_view){ + //console.log("InitHeatMapCanvas: "+spremenljivka); + var imageJQ = $('#hotspot_'+spremenljivka+'_image'); + var visina = imageJQ.height(); + var sirina = imageJQ.width(); + //var canvasJQ = $('#heatmapCanvas_'+spremenljivka); + var canvas = document.getElementById('heatmapCanvas_'+spremenljivka); + + + imageJQ.css( "display", "none" ); //skrij sliko + + image = new Image(); + image.src = $('#hotspot_'+spremenljivka+'_image').attr("src"); + image.height = visina; + image.width = sirina; + + //canvasJQ.height(visina); + //canvasJQ.width(sirina); + canvas.setAttribute('height',visina); + canvas.setAttribute('width',sirina); + + + if (canvas.getContext){ + var context = canvas.getContext('2d'); + context.drawImage(image, 0, 0, sirina, visina); //drawImage(image, dx, dy, dWidth, dHeight); //narisi sliko ustrezne dimenzije (sirina, visina) na canvas + } else { + console.log("Canvas not supported"); + } + + if(quick_view == true){ + //console.log("Disable buttons"); + $('#resetHeatMapCanvas_'+spremenljivka).prop('disabled', true); + $('#resetHeatMapLastPoint_'+spremenljivka).prop('disabled', true); + }else{ + $('#resetHeatMapCanvas_'+spremenljivka).prop('disabled', false); + $('#resetHeatMapLastPoint_'+spremenljivka).prop('disabled', false); + } + +} + + +function HeatMapCanvasDelovanje(evt, spremenljivka, heatmap_show_clicks, heatmap_num_clicks, heatmap_click_color, heatmap_click_size, heatmap_click_shape, quick_view){ + if(!quick_view){ + var canvas = document.getElementById('heatmapCanvas_'+spremenljivka); + //var canvas = document.getElementsByClassName('mapster_el_'+spremenljivka); + var context = canvas.getContext('2d'); + + //console.log("heatmap_num_clicksGlobal: "+heatmap_num_clicksGlobal[spremenljivka]); + if(heatmap_num_clicksGlobal[spremenljivka] != 0){ //dokler je stevilo moznih klikov razlicno od nula zbiraj koordinate klikanih tock + + mousePos[spremenljivka][indeksMousePos[spremenljivka]] = getMousePos(canvas, evt); + //console.log("x: "+mousePos[spremenljivka][indeksMousePos[spremenljivka]].x+" y: "+mousePos[spremenljivka][indeksMousePos[spremenljivka]].y+" za spremenljivko "+spremenljivka); + + + //oznacevanje checkbox vezani na obmocja + //preveri, ce je izbrana tocka znotraj obmocja + checkIfPointInsidePoly(spremenljivka); + //oznacevanje checkbox vezani na obmocja - konec + + + heatmap_num_clicksGlobal[spremenljivka]--; + if(heatmap_show_clicks){ //ce je to potrebno, pokazi klike na canvas v obliki okvirja + //drawRectangleOnCanvas(mousePos[spremenljivka][indeksMousePos[spremenljivka]], canvas, context); + drawShapeOnCanvas(mousePos[spremenljivka][indeksMousePos[spremenljivka]], canvas, context, heatmap_click_color, heatmap_click_size, heatmap_click_shape); + } + + HeatMapAddInput(spremenljivka, 0, 0); //dodaj obstojece inpute za tocke iz baze ob morebitnem refreshu ali prehodu na prejsnjo stran + + indeksMousePos[spremenljivka] = indeksMousePos[spremenljivka] + 1; + + $('#heatmapClickNumber_'+spremenljivka).text(indeksMousePos[spremenljivka]); //posodobi stevilo klikov na stevcu klikov + + if(heatmap_num_clicksGlobal[spremenljivka] == 0){ //ce ni vec moznih klikov + $('#heatmapCanvas_'+spremenljivka).css( 'cursor', 'default' ); //spremeni misko v navadno puscico + } + + + }else{ //ce ni vec moznih klikov + /* context.clearRect(0, 0, canvas.width, canvas.height); + //context.clearRect(0, 0, context.canvas.width, context.canvas.height); //Izbriši vse na canvasu + InitHeatMapCanvas(spremenljivka); + heatmap_num_clicksGlobal[spremenljivka] = heatmap_num_clicks; */ + //pokazi zbrane tocke + /* for(var i = 0; i", {id: pointId, name: "vrednost_" + spremenljivka + "[]", + value: pointId + "|" + mousePosRefresh.lat + "|" + mousePosRefresh.lng}); + }else{ + var $pointInput = $("", {id: pointId, name: "vrednost_" + spremenljivka + "[]", + value: pointId + "|" + mousePos[spremenljivka][indeksMousePos[spremenljivka]].x + "|" + mousePos[spremenljivka][indeksMousePos[spremenljivka]].y}); + } + $variable_holder.append($pointInput); +} + +//funkcija, ki narise izbrano obliko, kjer je izbrana tocka +function drawShapeOnCanvas(mousePos, canvas, context, heatmap_click_color, heatmap_click_size, heatmap_click_shape, refresh){ + //context.fillRect(mousePos.x, mousePos.y, 25, 25); + stranicaRect = heatmap_click_size; + if(heatmap_click_shape == 1) + { + if(refresh == 1){ + context.arc(mousePos.lat, mousePos.lng, stranicaRect, 0, 2 * Math.PI, false); + } + else{ + context.arc(mousePos.x, mousePos.y, stranicaRect, 0, 2 * Math.PI, false); + } + + }else if(heatmap_click_shape == 2) + { + if(refresh == 1){ + context.rect(mousePos.lat-stranicaRect/2, mousePos.lng-stranicaRect/2, stranicaRect, stranicaRect); + }else{ + context.rect(mousePos.x-stranicaRect/2, mousePos.y-stranicaRect/2, stranicaRect, stranicaRect); + } + } + + context.fillStyle = heatmap_click_color; + context.fill(); + context.closePath(); //risanje je potrebno zakljuciti da, konkretno pri krogih, se ti ne povezujemo med sabo in naredijo vecji lik +} + +//funkcija, ki resetira canvas in ostale spremenljivke na default +function resetHeatMapCanvas(spremenljivka, heatmap_num_clicks, quick_view){ + //pokazi zbrane tocke +/* for(var i = 0; i 0) + { + indeksMousePos[spremenljivka] = indeksMousePos[spremenljivka] - 1; + heatmap_num_clicksGlobal[spremenljivka] = heatmap_num_clicksGlobal[spremenljivka] + 1; //stevilo moznih klikov se poveca za ena + $('#heatmapClickNumber_'+spremenljivka).text(heatmap_num_clicks - heatmap_num_clicksGlobal[spremenljivka]); //stevec klikov + } + + //dodaj ostale nezbrisane tocke ****************** + //ce je bil refresh ali se je uporabnik vrnil na prejsnjo stran + if(refreshed[spremenljivka] == 1){ + for (var row in heatmap_data) { + var row_object = heatmap_data[row]; + mousePos[spremenljivka][row] = {x: row_object.lat, y: row_object.lng}; + //console.log("mousePos["+spremenljivka+"]["+row+"].x:"+mousePos[spremenljivka][row].x); + } + refreshed[spremenljivka] = 0; + } + for(var i = 0; i", {id: pointId, name: "vrednost_" + spremenljivka + "[]", + value: pointId + "|" + mousePos[spremenljivka][i].x + "|" + mousePos[spremenljivka][i].y}); + $variable_holder.append($pointInput); + if(heatmap_show_clicks){ //ce je to potrebno, pokazi klike na canvas v obliki okvirja + drawShapeOnCanvas(mousePos[spremenljivka][i], canvas, context, heatmap_click_color, heatmap_click_size, heatmap_click_shape); + } + } + + //dodaj ostale nezbrisane tocke - konec ****************** +} + +//funkcija, ki se sprozi ob vrnitvi na prejsnjo stran +function heatmap_data_add(spremenljivka, heatmap_data, heatmap_click_color, heatmap_click_size, heatmap_click_shape, heatmap_show_clicks, heatmap_num_clicks) { + heatmap_num_clicksGlobal[spremenljivka] = heatmap_num_clicks; + var i = 0; + for (var row in heatmap_data) { + var row_object = heatmap_data[row]; + var mousePos = {lat: row_object.lat, lng: row_object.lng}; + var canvas = document.getElementById('heatmapCanvas_'+spremenljivka); + var context = canvas.getContext('2d'); + + if(heatmap_show_clicks){ + drawShapeOnCanvas(mousePos, canvas, context, heatmap_click_color, heatmap_click_size, heatmap_click_shape, 1); + } + indeksMousePos[spremenljivka]++; + i++ + HeatMapAddInput(spremenljivka, 1, mousePos); + } + //uredi limit klikov glede na ze prisotne tocke na canvas + heatmap_num_clicksGlobal[spremenljivka] = heatmap_num_clicksGlobal[spremenljivka] - i; + $('#heatmapClickNumber_'+spremenljivka).text(i); //prikazi pravilno stevilo klikov na stevcu klikov +} + +//funkcija, ki skrbi za pretvorbo koordinat v pravilno obliko za nadaljnje delovanje +function convertPolyString(polypoints, vre_id){ + var poly = []; + var polyObjectArray = []; + var tmpX; + var tmpY; + var j = 0; + poly = polypoints.split(","); + + for(var i = 0; i pointy) != (poly[j].y > pointy)) && (pointx < (poly[j].x-poly[i].x) * (pointy-poly[i].y) / (poly[j].y-poly[i].y) + poly[i].x) ) inside = !inside; + } + //console.log("inside je: "+inside); + return inside; +} \ No newline at end of file diff --git a/admin/survey/script/HeatMap/HeatMapSumarnikPopUp.js b/admin/survey/script/HeatMap/HeatMapSumarnikPopUp.js new file mode 100644 index 0000000..46b69ff --- /dev/null +++ b/admin/survey/script/HeatMap/HeatMapSumarnikPopUp.js @@ -0,0 +1,354 @@ +//heatmap_data_holder postane holder id-jev potrebnih za prikaz markerjev kasneje +//kasneje se v ta objekt nafilajo podatki za prikaz vsakega markerja +var heatmap_data_holder = {}; +var heatmap; +var heatmapData = []; +var heatmapBackground_data_holder; +var max = 0; //stevilo isto klikanih tock +//var r = 50; +var r = 1; +var spr_id = 0; +var anketa_id; +var slikaNalozena = 0; + +function heatmapInit(spremenljivka){ + //ureditev vrednosti sliderja za radij in njegove output labele + $('#heatmapRadij').val(r); + $('#heatmapRadijValue').text(r); +} + +function drawHeatmap(){ + //narisi heatmap + var min = 0; + for (var row in heatmap_data_holder) { + var row_object = heatmap_data_holder[row]; + //x in y morajo biti int, ker drugace ne dela, zato parseInt() + heatmapData.push({x: parseInt(row_object.lat), y: parseInt(row_object.lng), value: parseInt(row_object.text), radius: r}); + //za pridobitev najvecjega stevila isto klikanih tock + if(max < parseInt(row_object.text)){ + max = parseInt(row_object.text); + } + } + //console.log("Final max: "+max); + // set the generated dataset + heatmap.setData({ + min: min, + max: max, + data: heatmapData + }); + //console.log(heatmapData); + exportHeatmapAsImage(spr_id); +} + +//kreiraj colorbox (popup, kjer bo heatmap poročilo) in sliderja za radij +$(document).ready(function () { + $(".fHeatMap").colorbox({ + scrolling:false, + width:"80%", + height:"80%", + title: "", + html:'
'+lang["srv_heatmap_radius"]+': '+r+'
', + onComplete:function(){getHeatMapDataAjax(); } + }); +}); + + + +function outputUpdate(radij) { + document.querySelector('#heatmapRadijValue').value = radij; + //console.log(radij); + r = radij; + heatmapData = []; //sprazni trenutni data set za risanje heatmap + drawHeatmap(); //ponovno narisi heatmap z novim radijem + max = 0; + //shrani vrednost radija + $.ajax({ + cache: false, + crossDomain: true, + type: 'post', + dataType: "text", + url: 'ajax.php?t=heatmapRadij', + data: { heatmapRadij: radij, anketa: anketa_id, sprid: spr_id}, + error: function(response) { + console.log("Error in Ajax4HeatMap connection! Please try later!"); + } + }); + + //odstrani sporocilo o moznosti shranjevanja slike, ce je ta generirana + if($('#heatMapSaveAsMsg_'+spr_id).text() != '') + { + //console.log($('#heatMapSaveAsMsg_'+spr_id).text()); + $('#heatMapSaveAsMsg_'+spr_id).remove(); + } +} + +/** + * ob kliku na link prenesi podatke o zeljeni spremenljivki + * @param {type} sprid - int - id spremenljivke + * @param {type} usrid - int - id userja + * @param {type} loopid - int - id loopa + * @returns {undefined} + */ +function passHeatMapData(sprid, usrid, loopid, anketa){ + //map_data_holder postane holder id-jev potrebnih za prikaz markerjev kasneje + heatmap_data_holder = {spr_id: sprid, usr_id: usrid, loop_id: loopid}; + //console.log("Radij: "+radij); + if (spr_id != sprid){ + //console.log("Rabimo nove podatke za heatmap"); + heatmapData = []; //sprazni trenutni data set za risanje heatmap + max = 0; + } + //console.log("Anketa v pass: "+anketa); + anketa_id = anketa; + spremenljivka = spr_id = sprid; + + getHeatMapRadij(sprid, anketa); + getHeatMapExportIcons(sprid, anketa); +} + +function getHeatMapRadij(sprid, anketa){ + $.ajax({ + cache: false, + crossDomain: true, + type: 'post', + dataType: "text", + url: 'ajax.php?t=getheatmapradij', + data: { sprid: sprid, anketa: anketa}, + error: function(response) { + console.log("Error in AjaxHeatMapBackGround connection! Please try later!"); + }, + success: function(response) { + r = response; + if(r){ + //console.log("Radij iz baze je: "+r); + }else{ + //console.log("Default radij"); + //r = 50; + r = 1; + //console.log("Radij je po novem: "+r); + } + //ureditev vrednosti sliderja za radij in njegove output labele + $('#heatmapRadij').val(r); + $('#heatmapRadijValue').text(r); + } + }); +} + +function getHeatMapExportIcons(sprid, anketa){ + $.ajax({ + cache: false, + crossDomain: true, + type: 'post', + dataType: "html", + url: 'ajax.php?t=getheatmapexporticons', + data: { sprid: sprid, anketa: anketa}, + error: function(response) { + console.log("Error in AjaxHeatMapBackGround connection! Please try later!"); + }, + success: function(response) { + //vnesi v mesto za gumbe za izvoz zeleno kodo + $('#izvozHeatmap').html(response); + } + }); +} + + +/* function prikaziPodatke(){ + var i = 1; + //var r = 50; + var r = 1; + for (var row in heatmap_data_holder) { + var row_object = heatmap_data_holder[row]; + //var pos = {lat: row_object.lat, lng: row_object.lng}; + var pos = {x: row_object.lat, y: row_object.lng, value: row_object.text, radius: r}; + //kreiraj marker + //createMarker(spremenljivka, row_object.address, pos, row_object.text); + $('#heatmap_canvas_all'+spremenljivka).append(i+". appended pos: "+pos.x+" "+pos.y+" value: "+pos.value+"
"); + i++; + } +} */ + + +//pridobi podatke za ureditev ozadja heatmap +function getHeatMapBackGround() { + $.ajax({ + cache: false, + crossDomain: true, + type: 'post', + dataType: "text", + url: 'ajax.php?t=heatmapBackgroundData', + data: { heatmapBackground_data: spremenljivka}, + error: function(response) { + console.log("Error in AjaxHeatMapBackGround connection! Please try later!"); + }, + success: function(response) { + heatmapBackground_data_holder = response; + + //dodajanje slike, da pobere potrebne podatke za ureditev slike v ozadju + $('#heatmap_canvas_all_'+spremenljivka).append(heatmapBackground_data_holder); + //dodaj id background sliki, ki je koristno za mozen izvoz slike + $('#heatmap_canvas_all_'+spr_id).find('img').attr('id', 'heatmap-background'); + + //****** risanje ozadja heatmap porocila + //pobiranje potrebnih podatkov + var bgSrc = $('#heatmap_canvas_all_'+spr_id).find('img').attr('src'); + //ali je online slika ali lokalna + var slikaNaStrezniku = checkBgSrc(bgSrc); + if(slikaNaStrezniku<=0){ //ce slika ni na strezniku, uporabi tmp sliko, ki je na strezniku + var url = getSiteUrl(); + bgSrc = url+"uploadi/editor/"+spr_id+"tmpImage.png"; + $('#heatmap_canvas_all_'+spr_id).find('img').attr('src', bgSrc); + } + //ali je online slika ali lokalna - konec + var bgWidth = $('#heatmap_canvas_all_'+spr_id).find('img').width(); + var bgHeight = $('#heatmap_canvas_all_'+spr_id).find('img').height(); + + //pravilno dimezioniranje celotnega canvas-a, za kasnejso pravilno velikost slike + $('#heatmap_canvas_all_'+spr_id).width(bgWidth); + $('#heatmap_canvas_all_'+spr_id).height(bgHeight); + + //risanje slike v ozadju canvasa + $('#heatmap-canvas').width(bgWidth); + $('#heatmap-canvas').height(bgHeight); + $('#heatmap-canvas').css("background", "transparent url('"+bgSrc+"') no-repeat left top"); + $('#heatmap-canvas').css("background-size", bgWidth+"px "+bgHeight+"px"); + + //inicializiraj heatmap + heatmap = h337.create({ + container: document.getElementById('heatmap_canvas_all_'+spr_id), + opacity:.5, + //radius: 10, + // this line makes datapoints unblurred + blur: 0.7 + }); + + drawHeatmap(); //izrisi heatmap + } + }); +} + +function checkBgSrc(bgSrc){ + var findme = 'editor/'; + var pos = bgSrc.indexOf(findme); //najdi pozicijo teksta 'editor/' + return pos; +} + + +function getSiteUrl(){ + $.ajax({ + cache: false, + crossDomain: true, + type: 'post', + dataType: "text", + url: 'ajax.php?t=getSiteUrl', + error: function(response) { + console.log("Error in AjaxHeatMapBackGround connection! Please try later!"); + }, + success: function(response) { + siteUrl = response; + } + }); + return siteUrl; +} + + +//pridobi podatke o tockah iz baze in za risanje heatmap +function getHeatMapDataAjax() { + $.ajax({ + cache: false, + crossDomain: true, + type: 'post', + dataType: "json", + url: 'ajax.php?t=heatmapData', + data: { heatmap_data: heatmap_data_holder, anketa: anketa_id}, + error: function(response) { + console.log("Error in AjaxHeatMapDataAjax connection! Please try later!"); + }, + success: function(response) { + $('#heatmap_canvas_all').attr('id', 'heatmap_canvas_all_'+spremenljivka); + eliminateDuplicates(); + //map_data_holder zdaj postane holder markerjev + heatmap_data_holder = response; + //heatmapInit(); + heatmapInit(spremenljivka); + getHeatMapBackGround(); + } + }); +} +//pridobi podatke o tockah iz baze in za risanje heatmap - konec + + +function eliminateDuplicates(){ + var i = 1; + //odstranitev odvecnih podatkov v object-u, saj se podvojijo + for (var row in heatmap_data_holder) { + var row_object = heatmap_data_holder[row]; + if (row == 0){ +/* console.log("row:"+row); + console.log("row_object[0]"+row_object[0]); + console.log("row_object[1]"+row_object[1]); + console.log("row_object[2]"+row_object[2]); + console.log("row_object[3]"+row_object[3]); */ + delete row_object[0]; + delete row_object[1]; + delete row_object[2]; + delete row_object[3]; + } + + } +} + +function insert(str, index, value) { + return str.substring(0, index) + value + str.substring(index); +} + + +function exportHeatmapAsImage(spr_id){ + //console.log("radij v exportHeatmapAsImage: "+r); + //******* pretvorba canvasa v sliko + var canvas = document.getElementById("heatmap-canvas"); + + var img = document.getElementById("heatmap-background"); //background slika + + //pobiranje potrebnih podatkov + var bgWidth = $('#heatmap_canvas_all_'+spr_id).find('img').width(); + var bgHeight = $('#heatmap_canvas_all_'+spr_id).find('img').height(); + + var ctx = canvas.getContext("2d"); + + //risi background sliko na canvas + if(slikaNalozena){ + izrisiSliko(canvas, img, bgWidth, bgHeight, ctx); + }else{ + img.onload = function(){ + izrisiSliko(canvas, img, bgWidth, bgHeight, ctx); + slikaNalozena = 1; + } + } + +} + +function izrisiSliko(canvas, img, bgWidth, bgHeight, ctx){ + //potrebna alfa transparenca, da sta vidni tako background slika kot heatmap + ctx.globalAlpha = 0.4; + + ctx.drawImage(img, 0, 0, bgWidth, bgHeight); + + var image = canvas.toDataURL("image/png"); + //console.log("Raw image data:"+image); + + $.ajax({ + cache: false, + crossDomain: true, + type: 'post', + dataType: "text", + url: 'ajax.php?t=saveHeatmapImage', + data: { sprid: spr_id, image: image}, + error: function(response) { + console.log("Error in SurveyHeatMapSaveImage connection! Please try later!"); + }, + success: function(response) { + //console.log("Image saved!"); + } + }); +} \ No newline at end of file diff --git a/admin/survey/script/HeatMap/heatmap.js b/admin/survey/script/HeatMap/heatmap.js new file mode 100644 index 0000000..f3d44f1 --- /dev/null +++ b/admin/survey/script/HeatMap/heatmap.js @@ -0,0 +1,725 @@ +/* + * heatmap.js v2.0.5 | JavaScript Heatmap Library + * + * Copyright 2008-2016 Patrick Wied - All rights reserved. + * Dual licensed under MIT and Beerware license + * + * :: 2016-09-05 01:16 + */ +;(function (name, context, factory) { + + // Supports UMD. AMD, CommonJS/Node.js and browser context + if (typeof module !== "undefined" && module.exports) { + module.exports = factory(); + } else if (typeof define === "function" && define.amd) { + define(factory); + } else { + context[name] = factory(); + } + +})("h337", this, function () { + +// Heatmap Config stores default values and will be merged with instance config +var HeatmapConfig = { + defaultRadius: 40, + defaultRenderer: 'canvas2d', + defaultGradient: { 0.25: "rgb(0,0,255)", 0.55: "rgb(0,255,0)", 0.85: "yellow", 1.0: "rgb(255,0,0)"}, + defaultMaxOpacity: 1, + defaultMinOpacity: 0, + defaultBlur: .85, + defaultXField: 'x', + defaultYField: 'y', + defaultValueField: 'value', + plugins: {} +}; +var Store = (function StoreClosure() { + + var Store = function Store(config) { + this._coordinator = {}; + this._data = []; + this._radi = []; + this._min = 10; + this._max = 1; + this._xField = config['xField'] || config.defaultXField; + this._yField = config['yField'] || config.defaultYField; + this._valueField = config['valueField'] || config.defaultValueField; + + if (config["radius"]) { + this._cfgRadius = config["radius"]; + } + }; + + var defaultRadius = HeatmapConfig.defaultRadius; + + Store.prototype = { + // when forceRender = false -> called from setData, omits renderall event + _organiseData: function(dataPoint, forceRender) { + var x = dataPoint[this._xField]; + var y = dataPoint[this._yField]; + var radi = this._radi; + var store = this._data; + var max = this._max; + var min = this._min; + var value = dataPoint[this._valueField] || 1; + var radius = dataPoint.radius || this._cfgRadius || defaultRadius; + + if (!store[x]) { + store[x] = []; + radi[x] = []; + } + + if (!store[x][y]) { + store[x][y] = value; + radi[x][y] = radius; + } else { + store[x][y] += value; + } + var storedVal = store[x][y]; + + if (storedVal > max) { + if (!forceRender) { + this._max = storedVal; + } else { + this.setDataMax(storedVal); + } + return false; + } else if (storedVal < min) { + if (!forceRender) { + this._min = storedVal; + } else { + this.setDataMin(storedVal); + } + return false; + } else { + return { + x: x, + y: y, + value: value, + radius: radius, + min: min, + max: max + }; + } + }, + _unOrganizeData: function() { + var unorganizedData = []; + var data = this._data; + var radi = this._radi; + + for (var x in data) { + for (var y in data[x]) { + + unorganizedData.push({ + x: x, + y: y, + radius: radi[x][y], + value: data[x][y] + }); + + } + } + return { + min: this._min, + max: this._max, + data: unorganizedData + }; + }, + _onExtremaChange: function() { + this._coordinator.emit('extremachange', { + min: this._min, + max: this._max + }); + }, + addData: function() { + if (arguments[0].length > 0) { + var dataArr = arguments[0]; + var dataLen = dataArr.length; + while (dataLen--) { + this.addData.call(this, dataArr[dataLen]); + } + } else { + // add to store + var organisedEntry = this._organiseData(arguments[0], true); + if (organisedEntry) { + // if it's the first datapoint initialize the extremas with it + if (this._data.length === 0) { + this._min = this._max = organisedEntry.value; + } + this._coordinator.emit('renderpartial', { + min: this._min, + max: this._max, + data: [organisedEntry] + }); + } + } + return this; + }, + setData: function(data) { + var dataPoints = data.data; + var pointsLen = dataPoints.length; + + + // reset data arrays + this._data = []; + this._radi = []; + + for(var i = 0; i < pointsLen; i++) { + this._organiseData(dataPoints[i], false); + } + this._max = data.max; + this._min = data.min || 0; + + this._onExtremaChange(); + this._coordinator.emit('renderall', this._getInternalData()); + return this; + }, + removeData: function() { + // TODO: implement + }, + setDataMax: function(max) { + this._max = max; + this._onExtremaChange(); + this._coordinator.emit('renderall', this._getInternalData()); + return this; + }, + setDataMin: function(min) { + this._min = min; + this._onExtremaChange(); + this._coordinator.emit('renderall', this._getInternalData()); + return this; + }, + setCoordinator: function(coordinator) { + this._coordinator = coordinator; + }, + _getInternalData: function() { + return { + max: this._max, + min: this._min, + data: this._data, + radi: this._radi + }; + }, + getData: function() { + return this._unOrganizeData(); + }/*, + + TODO: rethink. + + getValueAt: function(point) { + var value; + var radius = 100; + var x = point.x; + var y = point.y; + var data = this._data; + + if (data[x] && data[x][y]) { + return data[x][y]; + } else { + var values = []; + // radial search for datapoints based on default radius + for(var distance = 1; distance < radius; distance++) { + var neighbors = distance * 2 +1; + var startX = x - distance; + var startY = y - distance; + + for(var i = 0; i < neighbors; i++) { + for (var o = 0; o < neighbors; o++) { + if ((i == 0 || i == neighbors-1) || (o == 0 || o == neighbors-1)) { + if (data[startY+i] && data[startY+i][startX+o]) { + values.push(data[startY+i][startX+o]); + } + } else { + continue; + } + } + } + } + if (values.length > 0) { + return Math.max.apply(Math, values); + } + } + return false; + }*/ + }; + + + return Store; +})(); + +var Canvas2dRenderer = (function Canvas2dRendererClosure() { + + var _getColorPalette = function(config) { + var gradientConfig = config.gradient || config.defaultGradient; + var paletteCanvas = document.createElement('canvas'); + var paletteCtx = paletteCanvas.getContext('2d'); + + paletteCanvas.width = 256; + paletteCanvas.height = 1; + + var gradient = paletteCtx.createLinearGradient(0, 0, 256, 1); + for (var key in gradientConfig) { + gradient.addColorStop(key, gradientConfig[key]); + } + + paletteCtx.fillStyle = gradient; + paletteCtx.fillRect(0, 0, 256, 1); + + return paletteCtx.getImageData(0, 0, 256, 1).data; + }; + + var _getPointTemplate = function(radius, blurFactor) { + var tplCanvas = document.createElement('canvas'); + var tplCtx = tplCanvas.getContext('2d'); + var x = radius; + var y = radius; + tplCanvas.width = tplCanvas.height = radius*2; + + if (blurFactor == 1) { + tplCtx.beginPath(); + tplCtx.arc(x, y, radius, 0, 2 * Math.PI, false); + tplCtx.fillStyle = 'rgba(0,0,0,1)'; + tplCtx.fill(); + } else { + var gradient = tplCtx.createRadialGradient(x, y, radius*blurFactor, x, y, radius); + gradient.addColorStop(0, 'rgba(0,0,0,1)'); + gradient.addColorStop(1, 'rgba(0,0,0,0)'); + tplCtx.fillStyle = gradient; + tplCtx.fillRect(0, 0, 2*radius, 2*radius); + } + + + + return tplCanvas; + }; + + var _prepareData = function(data) { + var renderData = []; + var min = data.min; + var max = data.max; + var radi = data.radi; + var data = data.data; + + var xValues = Object.keys(data); + var xValuesLen = xValues.length; + + while(xValuesLen--) { + var xValue = xValues[xValuesLen]; + var yValues = Object.keys(data[xValue]); + var yValuesLen = yValues.length; + while(yValuesLen--) { + var yValue = yValues[yValuesLen]; + var value = data[xValue][yValue]; + var radius = radi[xValue][yValue]; + renderData.push({ + x: xValue, + y: yValue, + value: value, + radius: radius + }); + } + } + + return { + min: min, + max: max, + data: renderData + }; + }; + + + function Canvas2dRenderer(config) { + var container = config.container; + var shadowCanvas = this.shadowCanvas = document.createElement('canvas'); + var canvas = this.canvas = config.canvas || document.createElement('canvas'); + var renderBoundaries = this._renderBoundaries = [10000, 10000, 0, 0]; + + var computed = getComputedStyle(config.container) || {}; + + //canvas.className = 'heatmap-canvas'; + canvas.id = 'heatmap-canvas'; + + this._width = canvas.width = shadowCanvas.width = config.width || +(computed.width.replace(/px/,'')); + this._height = canvas.height = shadowCanvas.height = config.height || +(computed.height.replace(/px/,'')); + + this.shadowCtx = shadowCanvas.getContext('2d'); + this.ctx = canvas.getContext('2d'); + + // @TODO: + // conditional wrapper + + canvas.style.cssText = shadowCanvas.style.cssText = 'position:absolute;left:0;top:0;'; + + container.style.position = 'relative'; + container.appendChild(canvas); + + this._palette = _getColorPalette(config); + this._templates = {}; + + this._setStyles(config); + }; + + Canvas2dRenderer.prototype = { + renderPartial: function(data) { + if (data.data.length > 0) { + this._drawAlpha(data); + this._colorize(); + } + }, + renderAll: function(data) { + // reset render boundaries + this._clear(); + if (data.data.length > 0) { + this._drawAlpha(_prepareData(data)); + this._colorize(); + } + }, + _updateGradient: function(config) { + this._palette = _getColorPalette(config); + }, + updateConfig: function(config) { + if (config['gradient']) { + this._updateGradient(config); + } + this._setStyles(config); + }, + setDimensions: function(width, height) { + this._width = width; + this._height = height; + this.canvas.width = this.shadowCanvas.width = width; + this.canvas.height = this.shadowCanvas.height = height; + }, + _clear: function() { + this.shadowCtx.clearRect(0, 0, this._width, this._height); + this.ctx.clearRect(0, 0, this._width, this._height); + }, + _setStyles: function(config) { + this._blur = (config.blur == 0)?0:(config.blur || config.defaultBlur); + + if (config.backgroundColor) { + this.canvas.style.backgroundColor = config.backgroundColor; + } + + this._width = this.canvas.width = this.shadowCanvas.width = config.width || this._width; + this._height = this.canvas.height = this.shadowCanvas.height = config.height || this._height; + + + this._opacity = (config.opacity || 0) * 255; + this._maxOpacity = (config.maxOpacity || config.defaultMaxOpacity) * 255; + this._minOpacity = (config.minOpacity || config.defaultMinOpacity) * 255; + this._useGradientOpacity = !!config.useGradientOpacity; + }, + _drawAlpha: function(data) { + var min = this._min = data.min; + var max = this._max = data.max; + var data = data.data || []; + var dataLen = data.length; + // on a point basis? + var blur = 1 - this._blur; + + while(dataLen--) { + + var point = data[dataLen]; + + var x = point.x; + var y = point.y; + var radius = point.radius; + // if value is bigger than max + // use max as value + var value = Math.min(point.value, max); + var rectX = x - radius; + var rectY = y - radius; + var shadowCtx = this.shadowCtx; + + + + + var tpl; + if (!this._templates[radius]) { + this._templates[radius] = tpl = _getPointTemplate(radius, blur); + } else { + tpl = this._templates[radius]; + } + // value from minimum / value range + // => [0, 1] + var templateAlpha = (value-min)/(max-min); + // this fixes #176: small values are not visible because globalAlpha < .01 cannot be read from imageData + shadowCtx.globalAlpha = templateAlpha < .01 ? .01 : templateAlpha; + + shadowCtx.drawImage(tpl, rectX, rectY); + + // update renderBoundaries + if (rectX < this._renderBoundaries[0]) { + this._renderBoundaries[0] = rectX; + } + if (rectY < this._renderBoundaries[1]) { + this._renderBoundaries[1] = rectY; + } + if (rectX + 2*radius > this._renderBoundaries[2]) { + this._renderBoundaries[2] = rectX + 2*radius; + } + if (rectY + 2*radius > this._renderBoundaries[3]) { + this._renderBoundaries[3] = rectY + 2*radius; + } + + } + }, + _colorize: function() { + var x = this._renderBoundaries[0]; + var y = this._renderBoundaries[1]; + var width = this._renderBoundaries[2] - x; + var height = this._renderBoundaries[3] - y; + var maxWidth = this._width; + var maxHeight = this._height; + var opacity = this._opacity; + var maxOpacity = this._maxOpacity; + var minOpacity = this._minOpacity; + var useGradientOpacity = this._useGradientOpacity; + + if (x < 0) { + x = 0; + } + if (y < 0) { + y = 0; + } + if (x + width > maxWidth) { + width = maxWidth - x; + } + if (y + height > maxHeight) { + height = maxHeight - y; + } + + var img = this.shadowCtx.getImageData(x, y, width, height); + var imgData = img.data; + var len = imgData.length; + var palette = this._palette; + + + for (var i = 3; i < len; i+= 4) { + var alpha = imgData[i]; + var offset = alpha * 4; + + + if (!offset) { + continue; + } + + var finalAlpha; + if (opacity > 0) { + finalAlpha = opacity; + } else { + if (alpha < maxOpacity) { + if (alpha < minOpacity) { + finalAlpha = minOpacity; + } else { + finalAlpha = alpha; + } + } else { + finalAlpha = maxOpacity; + } + } + + imgData[i-3] = palette[offset]; + imgData[i-2] = palette[offset + 1]; + imgData[i-1] = palette[offset + 2]; + imgData[i] = useGradientOpacity ? palette[offset + 3] : finalAlpha; + + } + + img.data = imgData; + this.ctx.putImageData(img, x, y); + + this._renderBoundaries = [1000, 1000, 0, 0]; + + }, + getValueAt: function(point) { + var value; + var shadowCtx = this.shadowCtx; + var img = shadowCtx.getImageData(point.x, point.y, 1, 1); + var data = img.data[3]; + var max = this._max; + var min = this._min; + + value = (Math.abs(max-min) * (data/255)) >> 0; + + return value; + }, + getDataURL: function() { + return this.canvas.toDataURL(); + } + }; + + + return Canvas2dRenderer; +})(); + + +var Renderer = (function RendererClosure() { + + var rendererFn = false; + + if (HeatmapConfig['defaultRenderer'] === 'canvas2d') { + rendererFn = Canvas2dRenderer; + } + + return rendererFn; +})(); + + +var Util = { + merge: function() { + var merged = {}; + var argsLen = arguments.length; + for (var i = 0; i < argsLen; i++) { + var obj = arguments[i] + for (var key in obj) { + merged[key] = obj[key]; + } + } + return merged; + } +}; +// Heatmap Constructor +var Heatmap = (function HeatmapClosure() { + + var Coordinator = (function CoordinatorClosure() { + + function Coordinator() { + this.cStore = {}; + }; + + Coordinator.prototype = { + on: function(evtName, callback, scope) { + var cStore = this.cStore; + + if (!cStore[evtName]) { + cStore[evtName] = []; + } + cStore[evtName].push((function(data) { + return callback.call(scope, data); + })); + }, + emit: function(evtName, data) { + var cStore = this.cStore; + if (cStore[evtName]) { + var len = cStore[evtName].length; + for (var i=0; i