Version Description
Download this release
Release Info
Developer | flippercode |
Plugin | WP Google Map Plugin |
Version | 3.0.8 |
Comparing to | |
See all releases |
Version 3.0.8
- assets/css/backend.css +716 -0
- assets/css/bootstrap.min.flat.css +8389 -0
- assets/css/fonts/icomoon.eot +0 -0
- assets/css/fonts/icomoon.svg +15 -0
- assets/css/fonts/icomoon.ttf +0 -0
- assets/css/fonts/icomoon.woff +0 -0
- assets/css/frontend.css +19 -0
- assets/images/default_marker.png +0 -0
- assets/images/grid.png +0 -0
- assets/images/helpdesk.png +0 -0
- assets/images/icons/accident.png +0 -0
- assets/images/icons/administration.png +0 -0
- assets/images/icons/aestheticscenter.png +0 -0
- assets/images/icons/agriculture.png +0 -0
- assets/images/icons/agriculture2.png +0 -0
- assets/images/icons/agriculture3.png +0 -0
- assets/images/icons/agriculture4.png +0 -0
- assets/images/icons/aircraft-small.png +0 -0
- assets/images/icons/airplane-sport.png +0 -0
- assets/images/icons/airplane-tourism.png +0 -0
- assets/images/icons/airport-apron.png +0 -0
- assets/images/icons/airport-runway.png +0 -0
- assets/images/icons/airport-terminal.png +0 -0
- assets/images/icons/airport.png +0 -0
- assets/images/icons/amphitheater-tourism.png +0 -0
- assets/images/icons/amphitheater.png +0 -0
- assets/images/icons/ancientmonument.png +0 -0
- assets/images/icons/ancienttemple.png +0 -0
- assets/images/icons/ancienttempleruin.png +0 -0
- assets/images/icons/animals.png +0 -0
- assets/images/icons/anniversary.png +0 -0
- assets/images/icons/apartment.png +0 -0
- assets/images/icons/aquarium.png +0 -0
- assets/images/icons/arch.png +0 -0
- assets/images/icons/archery.png +0 -0
- assets/images/icons/artgallery.png +0 -0
- assets/images/icons/atm.png +0 -0
- assets/images/icons/atv.png +0 -0
- assets/images/icons/audio.png +0 -0
- assets/images/icons/australianfootball.png +0 -0
- assets/images/icons/bags.png +0 -0
- assets/images/icons/bank.png +0 -0
- assets/images/icons/bankeuro.png +0 -0
- assets/images/icons/bankpound.png +0 -0
- assets/images/icons/bar.png +0 -0
- assets/images/icons/baseball.png +0 -0
- assets/images/icons/basketball.png +0 -0
- assets/images/icons/baskteball2.png +0 -0
- assets/images/icons/beach.png +0 -0
- assets/images/icons/beautiful.png +0 -0
- assets/images/icons/bench.png +0 -0
- assets/images/icons/bicycleparking.png +0 -0
- assets/images/icons/bigcity.png +0 -0
- assets/images/icons/billiard.png +0 -0
- assets/images/icons/bobsleigh.png +0 -0
- assets/images/icons/bomb.png +0 -0
- assets/images/icons/bookstore.png +0 -0
- assets/images/icons/bowling.png +0 -0
- assets/images/icons/boxing.png +0 -0
- assets/images/icons/bread.png +0 -0
- assets/images/icons/bridge.png +0 -0
- assets/images/icons/bridgemodern.png +0 -0
- assets/images/icons/bullfight.png +0 -0
- assets/images/icons/bungalow.png +0 -0
- assets/images/icons/bus.png +0 -0
- assets/images/icons/butcher.png +0 -0
- assets/images/icons/cabin.png +0 -0
- assets/images/icons/cablecar.png +0 -0
- assets/images/icons/camping.png +0 -0
- assets/images/icons/campingsite.png +0 -0
- assets/images/icons/canoe.png +0 -0
- assets/images/icons/car.png +0 -0
- assets/images/icons/carrental.png +0 -0
- assets/images/icons/carrepair.png +0 -0
- assets/images/icons/carwash.png +0 -0
- assets/images/icons/casino.png +0 -0
- assets/images/icons/castle.png +0 -0
- assets/images/icons/cathedral.png +0 -0
- assets/images/icons/cathedral2.png +0 -0
- assets/images/icons/cave.png +0 -0
- assets/images/icons/cemetary.png +0 -0
- assets/images/icons/chapel.png +0 -0
- assets/images/icons/church.png +0 -0
- assets/images/icons/church2.png +0 -0
- assets/images/icons/cinema.png +0 -0
- assets/images/icons/circus.png +0 -0
- assets/images/icons/citysquare.png +0 -0
- assets/images/icons/climbing.png +0 -0
- assets/images/icons/clothes-female.png +0 -0
- assets/images/icons/clothes-male.png +0 -0
- assets/images/icons/clothes.png +0 -0
- assets/images/icons/clouds.png +0 -0
- assets/images/icons/cloudsun.png +0 -0
- assets/images/icons/club.png +0 -0
- assets/images/icons/cluster.png +0 -0
- assets/images/icons/cluster2.png +0 -0
- assets/images/icons/cluster3.png +0 -0
- assets/images/icons/cluster4.png +0 -0
- assets/images/icons/cluster5.png +0 -0
- assets/images/icons/cocktail.png +0 -0
- assets/images/icons/coffee.png +0 -0
- assets/images/icons/communitycentre.png +0 -0
- assets/images/icons/company.png +0 -0
- assets/images/icons/computer.png +0 -0
- assets/images/icons/concessionaire.png +0 -0
- assets/images/icons/conference.png +0 -0
- assets/images/icons/construction.png +0 -0
- assets/images/icons/convenience.png +0 -0
- assets/images/icons/convent.png +0 -0
- assets/images/icons/corral.png +0 -0
- assets/images/icons/country.png +0 -0
- assets/images/icons/court.png +0 -0
- assets/images/icons/cricket.png +0 -0
- assets/images/icons/cross.png +0 -0
- assets/images/icons/crossingguard.png +0 -0
- assets/images/icons/cruise.png +0 -0
- assets/images/icons/currencyexchange.png +0 -0
- assets/images/icons/customs.png +0 -0
- assets/images/icons/cycling.png +0 -0
- assets/images/icons/cyclingfeedarea.png +0 -0
- assets/images/icons/cyclingmountain1.png +0 -0
- assets/images/icons/cyclingmountain2.png +0 -0
- assets/images/icons/cyclingmountain3.png +0 -0
- assets/images/icons/cyclingmountain4.png +0 -0
- assets/images/icons/cyclingmountainnotrated.png +0 -0
- assets/images/icons/cyclingsport.png +0 -0
- assets/images/icons/cyclingsprint.png +0 -0
- assets/images/icons/cyclinguncategorized.png +0 -0
- assets/images/icons/dam.png +0 -0
- assets/images/icons/dancinghall.png +0 -0
- assets/images/icons/dates.png +0 -0
- assets/images/icons/daycare.png +0 -0
- assets/images/icons/days-dim.png +0 -0
- assets/images/icons/days-dom.png +0 -0
- assets/images/icons/days-jeu.png +0 -0
- assets/images/icons/days-jue.png +0 -0
- assets/images/icons/days-lun.png +0 -0
- assets/images/icons/days-mar.png +0 -0
- assets/images/icons/days-mer.png +0 -0
- assets/images/icons/days-mie.png +0 -0
- assets/images/icons/days-qua.png +0 -0
- assets/images/icons/days-qui.png +0 -0
- assets/images/icons/days-sab.png +0 -0
- assets/images/icons/days-sam.png +0 -0
- assets/images/icons/days-seg.png +0 -0
- assets/images/icons/days-sex.png +0 -0
- assets/images/icons/days-ter.png +0 -0
- assets/images/icons/days-ven.png +0 -0
- assets/images/icons/days-vie.png +0 -0
- assets/images/icons/dentist.png +0 -0
- assets/images/icons/deptstore.png +0 -0
- assets/images/icons/disability.png +0 -0
- assets/images/icons/disabledparking.png +0 -0
- assets/images/icons/diving.png +0 -0
- assets/images/icons/doctor.png +0 -0
- assets/images/icons/dog-leash.png +0 -0
- assets/images/icons/dog-offleash.png +0 -0
- assets/images/icons/door.png +0 -0
- assets/images/icons/down.png +0 -0
- assets/images/icons/downleft.png +0 -0
- assets/images/icons/downright.png +0 -0
- assets/images/icons/downthenleft.png +0 -0
- assets/images/icons/downthenright.png +0 -0
- assets/images/icons/drinkingfountain.png +0 -0
- assets/images/icons/drinkingwater.png +0 -0
- assets/images/icons/drugs.png +0 -0
- assets/images/icons/elevator.png +0 -0
- assets/images/icons/embassy.png +0 -0
- assets/images/icons/entrance.png +0 -0
- assets/images/icons/escalator-down.png +0 -0
- assets/images/icons/escalator-up.png +0 -0
- assets/images/icons/exit.png +0 -0
- assets/images/icons/expert.png +0 -0
- assets/images/icons/explosion.png +0 -0
- assets/images/icons/factory.png +0 -0
- assets/images/icons/fallingrocks.png +0 -0
- assets/images/icons/family.png +0 -0
- assets/images/icons/farm.png +0 -0
- assets/images/icons/fastfood.png +0 -0
- assets/images/icons/festival.png +0 -0
- assets/images/icons/findajob.png +0 -0
- assets/images/icons/findjob.png +0 -0
- assets/images/icons/fire-extinguisher.png +0 -0
- assets/images/icons/fire.png +0 -0
- assets/images/icons/firemen.png +0 -0
- assets/images/icons/fireworks.png +0 -0
- assets/images/icons/firstaid.png +0 -0
- assets/images/icons/fishing.png +0 -0
- assets/images/icons/fishingshop.png +0 -0
- assets/images/icons/fitnesscenter.png +0 -0
- assets/images/icons/fjord.png +0 -0
- assets/images/icons/flood.png +0 -0
- assets/images/icons/flowers.png +0 -0
- assets/images/icons/followpath.png +0 -0
- assets/images/icons/foodtruck.png +0 -0
- assets/images/icons/forest.png +0 -0
- assets/images/icons/fortress.png +0 -0
- assets/images/icons/fossils.png +0 -0
- assets/images/icons/fountain.png +0 -0
- assets/images/icons/friday.png +0 -0
- assets/images/icons/friends.png +0 -0
- assets/images/icons/garden.png +0 -0
- assets/images/icons/gateswalls.png +0 -0
- assets/images/icons/gazstation.png +0 -0
- assets/images/icons/geyser.png +0 -0
- assets/images/icons/gifts.png +0 -0
- assets/images/icons/girlfriend.png +0 -0
- assets/images/icons/glacier.png +0 -0
- assets/images/icons/golf.png +0 -0
- assets/images/icons/gondola.png +0 -0
- assets/images/icons/google-map-default-icon.png +0 -0
- assets/images/icons/gourmet.png +0 -0
- assets/images/icons/grocery.png +0 -0
- assets/images/icons/gun.png +0 -0
- assets/images/icons/gym.png +0 -0
- assets/images/icons/hairsalon.png +0 -0
- assets/images/icons/handball.png +0 -0
- assets/images/icons/hanggliding.png +0 -0
- assets/images/icons/hats.png +0 -0
- assets/images/icons/headstone.png +0 -0
- assets/images/icons/headstonejewish.png +0 -0
- assets/images/icons/helicopter.png +0 -0
- assets/images/icons/highway.png +0 -0
- assets/images/icons/hiking-tourism.png +0 -0
- assets/images/icons/hiking.png +0 -0
- assets/images/icons/historicalquarter.png +0 -0
- assets/images/icons/home.png +0 -0
- assets/images/icons/horseriding.png +0 -0
- assets/images/icons/hospital.png +0 -0
- assets/images/icons/hostel.png +0 -0
- assets/images/icons/hotairballoon.png +0 -0
- assets/images/icons/hotel.png +0 -0
- assets/images/icons/hotel1star.png +0 -0
- assets/images/icons/hotel2stars.png +0 -0
- assets/images/icons/hotel3stars.png +0 -0
- assets/images/icons/hotel4stars.png +0 -0
- assets/images/icons/hotel5stars.png +0 -0
- assets/images/icons/hunting.png +0 -0
- assets/images/icons/icecream.png +0 -0
- assets/images/icons/icehockey.png +0 -0
- assets/images/icons/iceskating.png +0 -0
- assets/images/icons/info.png +0 -0
- assets/images/icons/jewelry.png +0 -0
- assets/images/icons/jewishquarter.png +0 -0
- assets/images/icons/jogging.png +0 -0
- assets/images/icons/judo.png +0 -0
- assets/images/icons/justice.png +0 -0
- assets/images/icons/karate.png +0 -0
- assets/images/icons/karting.png +0 -0
- assets/images/icons/kayak.png +0 -0
- assets/images/icons/laboratory.png +0 -0
- assets/images/icons/lake.png +0 -0
- assets/images/icons/laundromat.png +0 -0
- assets/images/icons/left.png +0 -0
- assets/images/icons/leftthendown.png +0 -0
- assets/images/icons/leftthenup.png +0 -0
- assets/images/icons/library.png +0 -0
- assets/images/icons/lighthouse.png +0 -0
- assets/images/icons/liquor.png +0 -0
- assets/images/icons/lock.png +0 -0
- assets/images/icons/lockerrental.png +0 -0
- assets/images/icons/magicshow.png +0 -0
- assets/images/icons/mainroad.png +0 -0
- assets/images/icons/massage.png +0 -0
- assets/images/icons/military.png +0 -0
- assets/images/icons/mine.png +0 -0
- assets/images/icons/mobilephonetower.png +0 -0
- assets/images/icons/modernmonument.png +0 -0
- assets/images/icons/moderntower.png +0 -0
- assets/images/icons/monastery.png +0 -0
- assets/images/icons/monday.png +0 -0
- assets/images/icons/monument.png +0 -0
- assets/images/icons/mosque.png +0 -0
- assets/images/icons/motorbike.png +0 -0
- assets/images/icons/motorcycle.png +0 -0
- assets/images/icons/movierental.png +0 -0
- assets/images/icons/museum-archeological.png +0 -0
- assets/images/icons/museum-art.png +0 -0
- assets/images/icons/museum-crafts.png +0 -0
- assets/images/icons/museum-historical.png +0 -0
- assets/images/icons/museum-naval.png +0 -0
- assets/images/icons/museum-science.png +0 -0
- assets/images/icons/museum-war.png +0 -0
- assets/images/icons/museum.png +0 -0
- assets/images/icons/music-classical.png +0 -0
- assets/images/icons/music-hiphop.png +0 -0
- assets/images/icons/music-live.png +0 -0
- assets/images/icons/music-rock.png +0 -0
- assets/images/icons/music.png +0 -0
- assets/images/icons/nanny.png +0 -0
- assets/images/icons/newsagent.png +0 -0
- assets/images/icons/nordicski.png +0 -0
- assets/images/icons/nursery.png +0 -0
- assets/images/icons/observatory.png +0 -0
- assets/images/icons/oilpumpjack.png +0 -0
- assets/images/icons/olympicsite.png +0 -0
- assets/images/icons/ophthalmologist.png +0 -0
- assets/images/icons/pagoda.png +0 -0
- assets/images/icons/paint.png +0 -0
- assets/images/icons/palace.png +0 -0
- assets/images/icons/panoramic.png +0 -0
- assets/images/icons/panoramic180.png +0 -0
- assets/images/icons/park-urban.png +0 -0
- assets/images/icons/park.png +0 -0
- assets/images/icons/parkandride.png +0 -0
- assets/images/icons/parking.png +0 -0
- assets/images/icons/party.png +0 -0
- assets/images/icons/patisserie.png +0 -0
- assets/images/icons/pedestriancrossing.png +0 -0
- assets/images/icons/pens.png +0 -0
- assets/images/icons/perfumery.png +0 -0
- assets/images/icons/personalwatercraft.png +0 -0
- assets/images/icons/petroglyphs.png +0 -0
- assets/images/icons/pets.png +0 -0
- assets/images/icons/phones.png +0 -0
- assets/images/icons/photo.png +0 -0
- assets/images/icons/photodown.png +0 -0
- assets/images/icons/photodownleft.png +0 -0
- assets/images/icons/photodownright.png +0 -0
- assets/images/icons/photography.png +0 -0
- assets/images/icons/photoleft.png +0 -0
- assets/images/icons/photoright.png +0 -0
- assets/images/icons/photoup.png +0 -0
- assets/images/icons/photoupleft.png +0 -0
- assets/images/icons/photoupright.png +0 -0
- assets/images/icons/picnic.png +0 -0
- assets/images/icons/pin_blue.png +0 -0
- assets/images/icons/pin_green.png +0 -0
- assets/images/icons/pizza.png +0 -0
- assets/images/icons/places-unvisited.png +0 -0
- assets/images/icons/places-visited.png +0 -0
- assets/images/icons/planecrash.png +0 -0
- assets/images/icons/playground.png +0 -0
- assets/images/icons/poker.png +0 -0
- assets/images/icons/police.png +0 -0
- assets/images/icons/police2.png +0 -0
- assets/images/icons/pool-indoor.png +0 -0
- assets/images/icons/pool.png +0 -0
- assets/images/icons/port.png +0 -0
- assets/images/icons/postal.png +0 -0
- assets/images/icons/powerlinepole.png +0 -0
- assets/images/icons/powerplant.png +0 -0
- assets/images/icons/powersubstation.png +0 -0
- assets/images/icons/prison.png +0 -0
- assets/images/icons/publicart.png +0 -0
- assets/images/icons/racing.png +0 -0
- assets/images/icons/radiation.png +0 -0
- assets/images/icons/rain.png +0 -0
- assets/images/icons/rattlesnake.png +0 -0
- assets/images/icons/realestate.png +0 -0
- assets/images/icons/recycle.png +0 -0
- assets/images/icons/regroup.png +0 -0
- assets/images/icons/resort.png +0 -0
- assets/images/icons/restaurant-barbecue.png +0 -0
- assets/images/icons/restaurant-buffet.png +0 -0
- assets/images/icons/restaurant-fish.png +0 -0
- assets/images/icons/restaurant-romantic.png +0 -0
- assets/images/icons/restaurant.png +0 -0
- assets/images/icons/restaurantafrican.png +0 -0
- assets/images/icons/restaurantchinese.png +0 -0
- assets/images/icons/restaurantfishchips.png +0 -0
- assets/images/icons/restaurantgourmet.png +0 -0
- assets/images/icons/restaurantgreek.png +0 -0
- assets/images/icons/restaurantindian.png +0 -0
- assets/images/icons/restaurantitalian.png +0 -0
- assets/images/icons/restaurantjapanese.png +0 -0
- assets/images/icons/restaurantkebab.png +0 -0
- assets/images/icons/restaurantkorean.png +0 -0
- assets/images/icons/restaurantmediterranean.png +0 -0
- assets/images/icons/restaurantmexican.png +0 -0
- assets/images/icons/restaurantthai.png +0 -0
- assets/images/icons/restaurantturkish.png +0 -0
- assets/images/icons/revolution.png +0 -0
- assets/images/icons/right.png +0 -0
- assets/images/icons/rightthendown.png +0 -0
- assets/images/icons/rightthenup.png +0 -0
- assets/images/icons/riparian.png +0 -0
- assets/images/icons/ropescourse.png +0 -0
- assets/images/icons/rowboat.png +0 -0
- assets/images/icons/rugby.png +0 -0
- assets/images/icons/ruins.png +0 -0
- assets/images/icons/sailboat-sport.png +0 -0
- assets/images/icons/sailboat-tourism.png +0 -0
- assets/images/icons/sailboat.png +0 -0
- assets/images/icons/satursday.png +0 -0
- assets/images/icons/sauna.png +0 -0
- assets/images/icons/school.png +0 -0
- assets/images/icons/schrink.png +0 -0
- assets/images/icons/sciencecenter.png +0 -0
- assets/images/icons/seals.png +0 -0
- assets/images/icons/seniorsite.png +0 -0
- assets/images/icons/shelter-picnic.png +0 -0
- assets/images/icons/shelter-sleeping.png +0 -0
- assets/images/icons/shoes.png +0 -0
- assets/images/icons/shoppingmall.png +0 -0
- assets/images/icons/shore.png +0 -0
- assets/images/icons/shower.png +0 -0
- assets/images/icons/sight.png +0 -0
- assets/images/icons/skateboarding.png +0 -0
- assets/images/icons/skiing.png +0 -0
- assets/images/icons/skijump.png +0 -0
- assets/images/icons/skilift.png +0 -0
- assets/images/icons/smallcity.png +0 -0
- assets/images/icons/smokingarea.png +0 -0
- assets/images/icons/sneakers.png +0 -0
- assets/images/icons/snow.png +0 -0
- assets/images/icons/snowboarding.png +0 -0
- assets/images/icons/snowmobiling.png +0 -0
- assets/images/icons/snowshoeing.png +0 -0
- assets/images/icons/soccer.png +0 -0
- assets/images/icons/soccer2.png +0 -0
- assets/images/icons/spaceport.png +0 -0
- assets/images/icons/speed100.png +0 -0
- assets/images/icons/speed110.png +0 -0
- assets/images/icons/speed120.png +0 -0
- assets/images/icons/speed130.png +0 -0
- assets/images/icons/speed20.png +0 -0
- assets/images/icons/speed30.png +0 -0
- assets/images/icons/speed40.png +0 -0
- assets/images/icons/speed50.png +0 -0
- assets/images/icons/speed60.png +0 -0
- assets/images/icons/speed70.png +0 -0
- assets/images/icons/speed80.png +0 -0
- assets/images/icons/speed90.png +0 -0
- assets/images/icons/speedhump.png +0 -0
- assets/images/icons/spelunking.png +0 -0
- assets/images/icons/stadium.png +0 -0
- assets/images/icons/statue.png +0 -0
- assets/images/icons/steamtrain.png +0 -0
- assets/images/icons/stop.png +0 -0
- assets/images/icons/stoplight.png +0 -0
- assets/images/icons/strike.png +0 -0
- assets/images/icons/strike1.png +0 -0
- assets/images/icons/subway.png +0 -0
- assets/images/icons/sun.png +0 -0
- assets/images/icons/sunday.png +0 -0
- assets/images/icons/supermarket.png +0 -0
- assets/images/icons/surfing.png +0 -0
- assets/images/icons/suv.png +0 -0
- assets/images/icons/synagogue.png +0 -0
- assets/images/icons/tailor.png +0 -0
- assets/images/icons/tapas.png +0 -0
- assets/images/icons/taxi.png +0 -0
- assets/images/icons/taxiway.png +0 -0
- assets/images/icons/teahouse.png +0 -0
- assets/images/icons/telephone.png +0 -0
- assets/images/icons/templehindu.png +0 -0
- assets/images/icons/tennis.png +0 -0
- assets/images/icons/tennis2.png +0 -0
- assets/images/icons/tent.png +0 -0
- assets/images/icons/terrace.png +0 -0
- assets/images/icons/text.png +0 -0
- assets/images/icons/textiles.png +0 -0
- assets/images/icons/theater.png +0 -0
- assets/images/icons/themepark.png +0 -0
- assets/images/icons/thunder.png +0 -0
- assets/images/icons/thursday.png +0 -0
- assets/images/icons/toilets.png +0 -0
- assets/images/icons/tollstation.png +0 -0
- assets/images/icons/tools.png +0 -0
- assets/images/icons/tower.png +0 -0
- assets/images/icons/toys.png +0 -0
- assets/images/icons/trafficenforcementcamera.png +0 -0
- assets/images/icons/train.png +0 -0
- assets/images/icons/tram.png +0 -0
- assets/images/icons/trash.png +0 -0
- assets/images/icons/truck.png +0 -0
- assets/images/icons/tuesday.png +0 -0
- assets/images/icons/tunnel.png +0 -0
- assets/images/icons/turnleft.png +0 -0
- assets/images/icons/turnright.png +0 -0
- assets/images/icons/university.png +0 -0
- assets/images/icons/up.png +0 -0
- assets/images/icons/upleft.png +0 -0
- assets/images/icons/upright.png +0 -0
- assets/images/icons/upthenleft.png +0 -0
- assets/images/icons/upthenright.png +0 -0
- assets/images/icons/usfootball.png +0 -0
- assets/images/icons/vespa.png +0 -0
- assets/images/icons/vet.png +0 -0
- assets/images/icons/video.png +0 -0
- assets/images/icons/videogames.png +0 -0
- assets/images/icons/villa-tourism.png +0 -0
- assets/images/icons/villa.png +0 -0
- assets/images/icons/waitingroom.png +0 -0
- assets/images/icons/water.png +0 -0
- assets/images/icons/waterfall.png +0 -0
- assets/images/icons/watermill.png +0 -0
- assets/images/icons/waterpark.png +0 -0
- assets/images/icons/waterskiing.png +0 -0
- assets/images/icons/watertower.png +0 -0
- assets/images/icons/waterwell.png +0 -0
- assets/images/icons/waterwellpump.png +0 -0
- assets/images/icons/wedding.png +0 -0
- assets/images/icons/wednesday.png +0 -0
- assets/images/icons/wetland.png +0 -0
- assets/images/icons/white1.png +0 -0
- assets/images/icons/white20.png +0 -0
- assets/images/icons/wifi.png +0 -0
- assets/images/icons/windmill.png +0 -0
- assets/images/icons/windsurfing.png +0 -0
- assets/images/icons/windturbine.png +0 -0
- assets/images/icons/winery.png +0 -0
- assets/images/icons/wineyard.png +0 -0
- assets/images/icons/workoffice.png +0 -0
- assets/images/icons/world.png +0 -0
- assets/images/icons/worldheritagesite.png +0 -0
- assets/images/icons/yoga.png +0 -0
- assets/images/icons/youthhostel.png +0 -0
- assets/images/icons/zipline.png +0 -0
- assets/images/icons/zoo.png +0 -0
- assets/images/list.png +0 -0
- assets/images/loader.gif +0 -0
- assets/images/nav.png +0 -0
- assets/images/print.png +0 -0
- assets/images/sort_asc.png +0 -0
- assets/images/sort_asc_disabled.png +0 -0
- assets/images/sort_both.png +0 -0
- assets/images/sort_desc.png +0 -0
- assets/images/sort_desc_disabled.png +0 -0
- assets/images/wpgmp-toggle-sprite.png +0 -0
- assets/js/backend.js +4 -0
- assets/js/maps.js +307 -0
- core/abstract.factory.php +24 -0
- core/class.controller-factory.php +42 -0
- core/class.controller.php +178 -0
- core/class.database.php +86 -0
- core/class.map-widget.php +96 -0
- core/class.model-factory.php +42 -0
- core/class.model.php +323 -0
- core/class.tabular.php +743 -0
- core/class.template.php +844 -0
- core/class.validation.php +793 -0
- lang/wp-google-map-plugin-en_US.mo +0 -0
- lang/wp-google-map-plugin-en_US.po +937 -0
- modules/group_map/model.group_map.php +141 -0
- modules/group_map/views/form.php +85 -0
- modules/group_map/views/manage.php +71 -0
- modules/location/model.location.php +378 -0
- modules/location/views/form.php +294 -0
- modules/location/views/manage.php +30 -0
- modules/map/model.map.php +207 -0
- modules/map/views/form.php +55 -0
- modules/map/views/manage.php +67 -0
- modules/map/views/map-forms/control-position-style-form.php +70 -0
- modules/map/views/map-forms/control-setting-form.php +59 -0
- modules/map/views/map-forms/general-setting-form.php +134 -0
- modules/map/views/map-forms/layers-form.php +47 -0
- modules/map/views/map-forms/locations-form.php +66 -0
- modules/map/views/map-forms/map-center-settings.php +26 -0
- modules/map/views/map-forms/street-view-setting-form.php +83 -0
- modules/overview/model.overview.php +28 -0
- modules/overview/views/view.php +101 -0
- modules/settings/model.settings.php +58 -0
- modules/settings/views/manage.php +90 -0
- modules/shortcode/model.shortcode.php +30 -0
- modules/shortcode/views/put-wpgmp.php +210 -0
- readme.txt +253 -0
- wp-google-map-plugin.php +711 -0
assets/css/backend.css
ADDED
@@ -0,0 +1,716 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
body {
|
2 |
+
background: none !important;
|
3 |
+
}
|
4 |
+
|
5 |
+
.container {
|
6 |
+
font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
7 |
+
font-size: 15px;
|
8 |
+
line-height: 1.42857143;
|
9 |
+
color: #2c3e50;
|
10 |
+
background-color: #ffffff;
|
11 |
+
}
|
12 |
+
|
13 |
+
.wpgmp-overview .hiderow {
|
14 |
+
display: none;
|
15 |
+
}
|
16 |
+
|
17 |
+
.form-horizontal .radio,
|
18 |
+
.form-horizontal .checkbox,
|
19 |
+
.form-horizontal .radio-inline,
|
20 |
+
.form-horizontal .checkbox-inline {
|
21 |
+
padding-top: 0px;
|
22 |
+
}
|
23 |
+
|
24 |
+
.toplevel_page_wpgmp_view_overview .wpgmp-overview a {
|
25 |
+
color: #3498DB;
|
26 |
+
text-decoration: none;
|
27 |
+
}
|
28 |
+
|
29 |
+
.alert-success a,
|
30 |
+
.alert-info a,
|
31 |
+
.alert-danger a {
|
32 |
+
color: #fff;
|
33 |
+
}
|
34 |
+
|
35 |
+
.alert-success a:focus {
|
36 |
+
color: #fff;
|
37 |
+
}
|
38 |
+
|
39 |
+
.wpgmp-overview h4.alert.alert-info {
|
40 |
+
margin-left: -15px;
|
41 |
+
margin-right: -15px;
|
42 |
+
}
|
43 |
+
|
44 |
+
.wpgmp_or {
|
45 |
+
width: 100%;
|
46 |
+
text-align: center;
|
47 |
+
border-bottom: 1px solid #000;
|
48 |
+
line-height: 0.1em;
|
49 |
+
margin: 10px 0 20px;
|
50 |
+
}
|
51 |
+
|
52 |
+
.wpgmp_or span {
|
53 |
+
background: #fff;
|
54 |
+
padding: 0 10px;
|
55 |
+
}
|
56 |
+
|
57 |
+
.wp-color-result {
|
58 |
+
height: 24px !important;
|
59 |
+
}
|
60 |
+
|
61 |
+
.wpgmp-shape-delete {
|
62 |
+
cursor: pointer;
|
63 |
+
float: right;
|
64 |
+
margin-right: 0px;
|
65 |
+
}
|
66 |
+
/*
|
67 |
+
* Table styles
|
68 |
+
*/
|
69 |
+
|
70 |
+
table.dataTable {
|
71 |
+
width: 100%;
|
72 |
+
margin: 0 auto;
|
73 |
+
clear: both;
|
74 |
+
border-collapse: separate;
|
75 |
+
border-spacing: 0;
|
76 |
+
/*
|
77 |
+
* Header and footer styles
|
78 |
+
*/
|
79 |
+
/*
|
80 |
+
* Body styles
|
81 |
+
*/
|
82 |
+
}
|
83 |
+
|
84 |
+
table.dataTable thead th,
|
85 |
+
table.dataTable tfoot th {
|
86 |
+
font-weight: bold;
|
87 |
+
}
|
88 |
+
|
89 |
+
table.dataTable thead th,
|
90 |
+
table.dataTable thead td {
|
91 |
+
padding: 12px 12px;
|
92 |
+
border-top: 1px solid #e8ebec;
|
93 |
+
border-bottom: 1px solid #e8ebec;
|
94 |
+
}
|
95 |
+
|
96 |
+
table.dataTable thead th:active,
|
97 |
+
table.dataTable thead td:active {
|
98 |
+
outline: none;
|
99 |
+
}
|
100 |
+
|
101 |
+
table.dataTable tfoot th,
|
102 |
+
table.dataTable tfoot td {
|
103 |
+
padding: 10px 18px 6px 18px;
|
104 |
+
}
|
105 |
+
|
106 |
+
table.dataTable thead .sorting_asc,
|
107 |
+
table.dataTable thead .sorting_desc,
|
108 |
+
table.dataTable thead .sorting {
|
109 |
+
cursor: pointer;
|
110 |
+
*cursor: hand;
|
111 |
+
}
|
112 |
+
|
113 |
+
table.dataTable thead .nosort {
|
114 |
+
background: none !important;
|
115 |
+
}
|
116 |
+
|
117 |
+
div.dataTables_length select[name="wpgmp_google_map_data_table_length"],
|
118 |
+
div.dataTables_length select[name="wpgmp_google_map_route_data_table_length"] {
|
119 |
+
border: 1px solid #dddddd;
|
120 |
+
border-radius: 0px;
|
121 |
+
box-shadow: none !important;
|
122 |
+
color: #555555;
|
123 |
+
transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
|
124 |
+
}
|
125 |
+
|
126 |
+
table.dataTable thead .sorting {
|
127 |
+
background: url("../images/sort_both.png") no-repeat center right;
|
128 |
+
}
|
129 |
+
|
130 |
+
table.dataTable thead .sorting_asc {
|
131 |
+
background: url("../images/sort_asc.png") no-repeat center right;
|
132 |
+
}
|
133 |
+
|
134 |
+
table.dataTable thead .sorting_desc {
|
135 |
+
background: url("../images/sort_desc.png") no-repeat center right;
|
136 |
+
}
|
137 |
+
|
138 |
+
table.dataTable thead .sorting_asc_disabled {
|
139 |
+
background: url("../images/sort_asc_disabled.png") no-repeat center right;
|
140 |
+
}
|
141 |
+
|
142 |
+
table.dataTable thead .sorting_desc_disabled {
|
143 |
+
background: url("../images/sort_desc_disabled.png") no-repeat center right;
|
144 |
+
}
|
145 |
+
|
146 |
+
table.dataTable tbody tr.selected {
|
147 |
+
background-color: #b0bed9;
|
148 |
+
}
|
149 |
+
|
150 |
+
table.dataTable tbody th,
|
151 |
+
table.dataTable tbody td {
|
152 |
+
padding: 12px 12px;
|
153 |
+
border-bottom: 1px solid #e8ebec;
|
154 |
+
}
|
155 |
+
|
156 |
+
table.dataTable.row-border tbody th,
|
157 |
+
table.dataTable.row-border tbody td,
|
158 |
+
table.dataTable.display tbody th,
|
159 |
+
table.dataTable.display tbody td {
|
160 |
+
border-top: 1px solid #dddddd;
|
161 |
+
}
|
162 |
+
|
163 |
+
table.dataTable.row-border tbody tr:first-child th,
|
164 |
+
table.dataTable.row-border tbody tr:first-child td,
|
165 |
+
table.dataTable.display tbody tr:first-child th,
|
166 |
+
table.dataTable.display tbody tr:first-child td {
|
167 |
+
border-top: none;
|
168 |
+
}
|
169 |
+
|
170 |
+
table.dataTable.cell-border tbody th,
|
171 |
+
table.dataTable.cell-border tbody td {
|
172 |
+
border-top: 1px solid #dddddd;
|
173 |
+
border-right: 1px solid #dddddd;
|
174 |
+
}
|
175 |
+
|
176 |
+
table.dataTable.cell-border tbody tr th:first-child,
|
177 |
+
table.dataTable.cell-border tbody tr td:first-child {
|
178 |
+
border-left: 1px solid #dddddd;
|
179 |
+
}
|
180 |
+
|
181 |
+
table.dataTable.cell-border tbody tr:first-child th,
|
182 |
+
table.dataTable.cell-border tbody tr:first-child td {
|
183 |
+
border-top: none;
|
184 |
+
}
|
185 |
+
|
186 |
+
table.dataTable.stripe tbody tr.odd,
|
187 |
+
table.dataTable.display tbody tr.odd {
|
188 |
+
background-color: #f9f9f9;
|
189 |
+
}
|
190 |
+
|
191 |
+
table.dataTable.stripe tbody tr.odd.selected,
|
192 |
+
table.dataTable.display tbody tr.odd.selected {
|
193 |
+
background-color: #abb9d3;
|
194 |
+
}
|
195 |
+
|
196 |
+
table.dataTable.hover tbody tr:hover,
|
197 |
+
table.dataTable.hover tbody tr.odd:hover,
|
198 |
+
table.dataTable.hover tbody tr.even:hover,
|
199 |
+
table.dataTable.display tbody tr:hover,
|
200 |
+
table.dataTable.display tbody tr.odd:hover,
|
201 |
+
table.dataTable.display tbody tr.even:hover {
|
202 |
+
background-color: whitesmoke;
|
203 |
+
}
|
204 |
+
|
205 |
+
table.dataTable.hover tbody tr:hover.selected,
|
206 |
+
table.dataTable.hover tbody tr.odd:hover.selected,
|
207 |
+
table.dataTable.hover tbody tr.even:hover.selected,
|
208 |
+
table.dataTable.display tbody tr:hover.selected,
|
209 |
+
table.dataTable.display tbody tr.odd:hover.selected,
|
210 |
+
table.dataTable.display tbody tr.even:hover.selected {
|
211 |
+
background-color: #a9b7d1;
|
212 |
+
}
|
213 |
+
|
214 |
+
table.dataTable.order-column tbody tr > .sorting_1,
|
215 |
+
table.dataTable.order-column tbody tr > .sorting_2,
|
216 |
+
table.dataTable.order-column tbody tr > .sorting_3,
|
217 |
+
table.dataTable.display tbody tr > .sorting_1,
|
218 |
+
table.dataTable.display tbody tr > .sorting_2,
|
219 |
+
table.dataTable.display tbody tr > .sorting_3 {
|
220 |
+
background-color: #f9f9f9;
|
221 |
+
}
|
222 |
+
|
223 |
+
table.dataTable.order-column tbody tr.selected > .sorting_1,
|
224 |
+
table.dataTable.order-column tbody tr.selected > .sorting_2,
|
225 |
+
table.dataTable.order-column tbody tr.selected > .sorting_3,
|
226 |
+
table.dataTable.display tbody tr.selected > .sorting_1,
|
227 |
+
table.dataTable.display tbody tr.selected > .sorting_2,
|
228 |
+
table.dataTable.display tbody tr.selected > .sorting_3 {
|
229 |
+
background-color: #acbad4;
|
230 |
+
}
|
231 |
+
|
232 |
+
table.dataTable.display tbody tr.odd > .sorting_1,
|
233 |
+
table.dataTable.order-column.stripe tbody tr.odd > .sorting_1 {
|
234 |
+
background-color: #f1f1f1;
|
235 |
+
}
|
236 |
+
|
237 |
+
table.dataTable.display tbody tr.odd > .sorting_2,
|
238 |
+
table.dataTable.order-column.stripe tbody tr.odd > .sorting_2 {
|
239 |
+
background-color: #f3f3f3;
|
240 |
+
}
|
241 |
+
|
242 |
+
table.dataTable.display tbody tr.odd > .sorting_3,
|
243 |
+
table.dataTable.order-column.stripe tbody tr.odd > .sorting_3 {
|
244 |
+
background-color: whitesmoke;
|
245 |
+
}
|
246 |
+
|
247 |
+
table.dataTable.display tbody tr.odd.selected > .sorting_1,
|
248 |
+
table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_1 {
|
249 |
+
background-color: #a6b3cd;
|
250 |
+
}
|
251 |
+
|
252 |
+
table.dataTable.display tbody tr.odd.selected > .sorting_2,
|
253 |
+
table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_2 {
|
254 |
+
background-color: #a7b5ce;
|
255 |
+
}
|
256 |
+
|
257 |
+
table.dataTable.display tbody tr.odd.selected > .sorting_3,
|
258 |
+
table.dataTable.order-column.stripe tbody tr.odd.selected > .sorting_3 {
|
259 |
+
background-color: #a9b6d0;
|
260 |
+
}
|
261 |
+
|
262 |
+
table.dataTable.display tbody tr.even > .sorting_1,
|
263 |
+
table.dataTable.order-column.stripe tbody tr.even > .sorting_1 {
|
264 |
+
background-color: #f9f9f9;
|
265 |
+
}
|
266 |
+
|
267 |
+
table.dataTable.display tbody tr.even > .sorting_2,
|
268 |
+
table.dataTable.order-column.stripe tbody tr.even > .sorting_2 {
|
269 |
+
background-color: #fbfbfb;
|
270 |
+
}
|
271 |
+
|
272 |
+
table.dataTable.display tbody tr.even > .sorting_3,
|
273 |
+
table.dataTable.order-column.stripe tbody tr.even > .sorting_3 {
|
274 |
+
background-color: #fdfdfd;
|
275 |
+
}
|
276 |
+
|
277 |
+
table.dataTable.display tbody tr.even.selected > .sorting_1,
|
278 |
+
table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_1 {
|
279 |
+
background-color: #acbad4;
|
280 |
+
}
|
281 |
+
|
282 |
+
table.dataTable.display tbody tr.even.selected > .sorting_2,
|
283 |
+
table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_2 {
|
284 |
+
background-color: #adbbd6;
|
285 |
+
}
|
286 |
+
|
287 |
+
table.dataTable.display tbody tr.even.selected > .sorting_3,
|
288 |
+
table.dataTable.order-column.stripe tbody tr.even.selected > .sorting_3 {
|
289 |
+
background-color: #afbdd8;
|
290 |
+
}
|
291 |
+
|
292 |
+
table.dataTable.display tbody tr:hover > .sorting_1,
|
293 |
+
table.dataTable.display tbody tr.odd:hover > .sorting_1,
|
294 |
+
table.dataTable.display tbody tr.even:hover > .sorting_1,
|
295 |
+
table.dataTable.order-column.hover tbody tr:hover > .sorting_1,
|
296 |
+
table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_1,
|
297 |
+
table.dataTable.order-column.hover tbody tr.even:hover > .sorting_1 {
|
298 |
+
background-color: #eaeaea;
|
299 |
+
}
|
300 |
+
|
301 |
+
table.dataTable.display tbody tr:hover > .sorting_2,
|
302 |
+
table.dataTable.display tbody tr.odd:hover > .sorting_2,
|
303 |
+
table.dataTable.display tbody tr.even:hover > .sorting_2,
|
304 |
+
table.dataTable.order-column.hover tbody tr:hover > .sorting_2,
|
305 |
+
table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_2,
|
306 |
+
table.dataTable.order-column.hover tbody tr.even:hover > .sorting_2 {
|
307 |
+
background-color: #ebebeb;
|
308 |
+
}
|
309 |
+
|
310 |
+
table.dataTable.display tbody tr:hover > .sorting_3,
|
311 |
+
table.dataTable.display tbody tr.odd:hover > .sorting_3,
|
312 |
+
table.dataTable.display tbody tr.even:hover > .sorting_3,
|
313 |
+
table.dataTable.order-column.hover tbody tr:hover > .sorting_3,
|
314 |
+
table.dataTable.order-column.hover tbody tr.odd:hover > .sorting_3,
|
315 |
+
table.dataTable.order-column.hover tbody tr.even:hover > .sorting_3 {
|
316 |
+
background-color: #eeeeee;
|
317 |
+
}
|
318 |
+
|
319 |
+
table.dataTable.display tbody tr:hover.selected > .sorting_1,
|
320 |
+
table.dataTable.display tbody tr.odd:hover.selected > .sorting_1,
|
321 |
+
table.dataTable.display tbody tr.even:hover.selected > .sorting_1,
|
322 |
+
table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_1,
|
323 |
+
table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_1,
|
324 |
+
table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_1 {
|
325 |
+
background-color: #a1aec7;
|
326 |
+
}
|
327 |
+
|
328 |
+
table.dataTable.display tbody tr:hover.selected > .sorting_2,
|
329 |
+
table.dataTable.display tbody tr.odd:hover.selected > .sorting_2,
|
330 |
+
table.dataTable.display tbody tr.even:hover.selected > .sorting_2,
|
331 |
+
table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_2,
|
332 |
+
table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_2,
|
333 |
+
table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_2 {
|
334 |
+
background-color: #a2afc8;
|
335 |
+
}
|
336 |
+
|
337 |
+
table.dataTable.display tbody tr:hover.selected > .sorting_3,
|
338 |
+
table.dataTable.display tbody tr.odd:hover.selected > .sorting_3,
|
339 |
+
table.dataTable.display tbody tr.even:hover.selected > .sorting_3,
|
340 |
+
table.dataTable.order-column.hover tbody tr:hover.selected > .sorting_3,
|
341 |
+
table.dataTable.order-column.hover tbody tr.odd:hover.selected > .sorting_3,
|
342 |
+
table.dataTable.order-column.hover tbody tr.even:hover.selected > .sorting_3 {
|
343 |
+
background-color: #a4b2cb;
|
344 |
+
}
|
345 |
+
|
346 |
+
table.dataTable.no-footer {
|
347 |
+
margin-bottom: 5px;
|
348 |
+
padding-top: 10px;
|
349 |
+
}
|
350 |
+
|
351 |
+
table.dataTable.nowrap th,
|
352 |
+
table.dataTable.nowrap td {
|
353 |
+
white-space: nowrap;
|
354 |
+
}
|
355 |
+
|
356 |
+
table.dataTable.compact thead th,
|
357 |
+
table.dataTable.compact thead td {
|
358 |
+
padding: 5px 9px;
|
359 |
+
}
|
360 |
+
|
361 |
+
table.dataTable.compact tfoot th,
|
362 |
+
table.dataTable.compact tfoot td {
|
363 |
+
padding: 5px 9px 3px 9px;
|
364 |
+
}
|
365 |
+
|
366 |
+
table.dataTable.compact tbody th,
|
367 |
+
table.dataTable.compact tbody td {
|
368 |
+
padding: 4px 5px;
|
369 |
+
}
|
370 |
+
|
371 |
+
table.dataTable th.dt-left,
|
372 |
+
table.dataTable td.dt-left {
|
373 |
+
text-align: left;
|
374 |
+
}
|
375 |
+
|
376 |
+
table.dataTable th.dt-center,
|
377 |
+
table.dataTable td.dt-center,
|
378 |
+
table.dataTable td.dataTables_empty {
|
379 |
+
text-align: center;
|
380 |
+
}
|
381 |
+
|
382 |
+
table.dataTable th.dt-right,
|
383 |
+
table.dataTable td.dt-right {
|
384 |
+
text-align: right;
|
385 |
+
}
|
386 |
+
|
387 |
+
table.dataTable th.dt-justify,
|
388 |
+
table.dataTable td.dt-justify {
|
389 |
+
text-align: justify;
|
390 |
+
}
|
391 |
+
|
392 |
+
table.dataTable th.dt-nowrap,
|
393 |
+
table.dataTable td.dt-nowrap {
|
394 |
+
white-space: nowrap;
|
395 |
+
}
|
396 |
+
|
397 |
+
table.dataTable thead th.dt-head-left,
|
398 |
+
table.dataTable thead td.dt-head-left,
|
399 |
+
table.dataTable tfoot th.dt-head-left,
|
400 |
+
table.dataTable tfoot td.dt-head-left {
|
401 |
+
text-align: left;
|
402 |
+
}
|
403 |
+
|
404 |
+
table.dataTable thead th.dt-head-center,
|
405 |
+
table.dataTable thead td.dt-head-center,
|
406 |
+
table.dataTable tfoot th.dt-head-center,
|
407 |
+
table.dataTable tfoot td.dt-head-center {
|
408 |
+
text-align: center;
|
409 |
+
}
|
410 |
+
|
411 |
+
table.dataTable thead th.dt-head-right,
|
412 |
+
table.dataTable thead td.dt-head-right,
|
413 |
+
table.dataTable tfoot th.dt-head-right,
|
414 |
+
table.dataTable tfoot td.dt-head-right {
|
415 |
+
text-align: right;
|
416 |
+
}
|
417 |
+
|
418 |
+
table.dataTable thead th.dt-head-justify,
|
419 |
+
table.dataTable thead td.dt-head-justify,
|
420 |
+
table.dataTable tfoot th.dt-head-justify,
|
421 |
+
table.dataTable tfoot td.dt-head-justify {
|
422 |
+
text-align: justify;
|
423 |
+
}
|
424 |
+
|
425 |
+
table.dataTable thead th.dt-head-nowrap,
|
426 |
+
table.dataTable thead td.dt-head-nowrap,
|
427 |
+
table.dataTable tfoot th.dt-head-nowrap,
|
428 |
+
table.dataTable tfoot td.dt-head-nowrap {
|
429 |
+
white-space: nowrap;
|
430 |
+
}
|
431 |
+
|
432 |
+
table.dataTable tbody th.dt-body-left,
|
433 |
+
table.dataTable tbody td.dt-body-left {
|
434 |
+
text-align: left;
|
435 |
+
}
|
436 |
+
|
437 |
+
table.dataTable tbody th.dt-body-center,
|
438 |
+
table.dataTable tbody td.dt-body-center {
|
439 |
+
text-align: center;
|
440 |
+
}
|
441 |
+
|
442 |
+
table.dataTable tbody th.dt-body-right,
|
443 |
+
table.dataTable tbody td.dt-body-right {
|
444 |
+
text-align: right;
|
445 |
+
}
|
446 |
+
|
447 |
+
table.dataTable tbody th.dt-body-justify,
|
448 |
+
table.dataTable tbody td.dt-body-justify {
|
449 |
+
text-align: justify;
|
450 |
+
}
|
451 |
+
|
452 |
+
table.dataTable tbody th.dt-body-nowrap,
|
453 |
+
table.dataTable tbody td.dt-body-nowrap {
|
454 |
+
white-space: nowrap;
|
455 |
+
}
|
456 |
+
|
457 |
+
table.dataTable,
|
458 |
+
table.dataTable th,
|
459 |
+
table.dataTable td {
|
460 |
+
-webkit-box-sizing: content-box;
|
461 |
+
-moz-box-sizing: content-box;
|
462 |
+
box-sizing: content-box;
|
463 |
+
}
|
464 |
+
/*
|
465 |
+
* Control feature layout
|
466 |
+
*/
|
467 |
+
|
468 |
+
.dataTables_wrapper {
|
469 |
+
position: relative;
|
470 |
+
clear: both;
|
471 |
+
*zoom: 1;
|
472 |
+
zoom: 1;
|
473 |
+
}
|
474 |
+
|
475 |
+
.dataTables_wrapper .dataTables_length {
|
476 |
+
float: left;
|
477 |
+
}
|
478 |
+
|
479 |
+
.dataTables_wrapper .dataTables_filter {
|
480 |
+
float: right;
|
481 |
+
text-align: right;
|
482 |
+
}
|
483 |
+
|
484 |
+
.dataTables_wrapper .dataTables_filter input {
|
485 |
+
margin-left: 0.5em;
|
486 |
+
border: 1px solid #dddddd;
|
487 |
+
border-radius: 0px;
|
488 |
+
box-shadow: none !important;
|
489 |
+
color: #555555;
|
490 |
+
font-size: 14px;
|
491 |
+
padding: 8px 12px;
|
492 |
+
transition: border-color 0.15s ease-in-out 0s, box-shadow 0.15s ease-in-out 0s;
|
493 |
+
}
|
494 |
+
|
495 |
+
.dataTables_wrapper .dataTables_info {
|
496 |
+
clear: both;
|
497 |
+
float: left;
|
498 |
+
padding-top: 0.755em;
|
499 |
+
}
|
500 |
+
|
501 |
+
.dataTables_wrapper .dataTables_paginate {
|
502 |
+
float: right;
|
503 |
+
text-align: right;
|
504 |
+
padding-top: 0.25em;
|
505 |
+
}
|
506 |
+
|
507 |
+
.dataTables_wrapper .dataTables_paginate .paginate_button {
|
508 |
+
box-sizing: border-box;
|
509 |
+
display: inline-block;
|
510 |
+
min-width: 1.5em;
|
511 |
+
padding: 0.5em 1em;
|
512 |
+
margin-left: 2px;
|
513 |
+
text-align: center;
|
514 |
+
text-decoration: none !important;
|
515 |
+
cursor: pointer;
|
516 |
+
*cursor: hand;
|
517 |
+
color: #333333 !important;
|
518 |
+
border: 1px solid transparent;
|
519 |
+
}
|
520 |
+
|
521 |
+
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
|
522 |
+
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
|
523 |
+
color: #333333 !important;
|
524 |
+
border: 1px solid #EEEEEE;
|
525 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #BFBFBF), color-stop(100%, gainsboro));
|
526 |
+
/* Chrome,Safari4+ */
|
527 |
+
|
528 |
+
background: -webkit-linear-gradient(top, #BFBFBF 0%, gainsboro 100%);
|
529 |
+
/* Chrome10+,Safari5.1+ */
|
530 |
+
|
531 |
+
background: -moz-linear-gradient(top, #BFBFBF 0%, gainsboro 100%);
|
532 |
+
/* FF3.6+ */
|
533 |
+
|
534 |
+
background: -ms-linear-gradient(top, #BFBFBF 0%, gainsboro 100%);
|
535 |
+
/* IE10+ */
|
536 |
+
|
537 |
+
background: -o-linear-gradient(top, #BFBFBF 0%, gainsboro 100%);
|
538 |
+
/* Opera 11.10+ */
|
539 |
+
|
540 |
+
background: linear-gradient(to bottom, #BFBFBF 0%, gainsboro 100%);
|
541 |
+
/* W3C */
|
542 |
+
}
|
543 |
+
|
544 |
+
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled,
|
545 |
+
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:hover,
|
546 |
+
.dataTables_wrapper .dataTables_paginate .paginate_button.disabled:active {
|
547 |
+
cursor: default;
|
548 |
+
color: #666 !important;
|
549 |
+
border: 1px solid transparent;
|
550 |
+
background: transparent;
|
551 |
+
box-shadow: none;
|
552 |
+
}
|
553 |
+
|
554 |
+
.dataTables_wrapper .dataTables_paginate .paginate_button:hover {
|
555 |
+
color: white !important;
|
556 |
+
border: 1px solid #EEEEEE;
|
557 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #BFBFBF), color-stop(100%, #BFBFBF));
|
558 |
+
/* Chrome,Safari4+ */
|
559 |
+
|
560 |
+
background: -webkit-linear-gradient(top, #BFBFBF 0%, #BFBFBF 100%);
|
561 |
+
/* Chrome10+,Safari5.1+ */
|
562 |
+
|
563 |
+
background: -moz-linear-gradient(top, #BFBFBF 0%, #BFBFBF 100%);
|
564 |
+
/* FF3.6+ */
|
565 |
+
|
566 |
+
background: -ms-linear-gradient(top, #BFBFBF 0%, #BFBFBF 100%);
|
567 |
+
/* IE10+ */
|
568 |
+
|
569 |
+
background: -o-linear-gradient(top, #BFBFBF 0%, #BFBFBF 100%);
|
570 |
+
/* Opera 11.10+ */
|
571 |
+
|
572 |
+
background: linear-gradient(to bottom, #BFBFBF 0%, #BFBFBF 100%);
|
573 |
+
/* W3C */
|
574 |
+
}
|
575 |
+
|
576 |
+
.dataTables_wrapper .dataTables_paginate .paginate_button:active {
|
577 |
+
outline: none;
|
578 |
+
background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #BFBFBF), color-stop(100%, #BFBFBF));
|
579 |
+
/* Chrome,Safari4+ */
|
580 |
+
|
581 |
+
background: -webkit-linear-gradient(top, #BFBFBF 0%, #BFBFBF 100%);
|
582 |
+
/* Chrome10+,Safari5.1+ */
|
583 |
+
|
584 |
+
background: -moz-linear-gradient(top, #BFBFBF 0%, #BFBFBF 100%);
|
585 |
+
/* FF3.6+ */
|
586 |
+
|
587 |
+
background: -ms-linear-gradient(top, #BFBFBF 0%, #BFBFBF 100%);
|
588 |
+
/* IE10+ */
|
589 |
+
|
590 |
+
background: -o-linear-gradient(top, #BFBFBF 0%, #BFBFBF 100%);
|
591 |
+
/* Opera 11.10+ */
|
592 |
+
|
593 |
+
background: linear-gradient(to bottom, #BFBFBF 0%, #BFBFBF 100%);
|
594 |
+
/* W3C */
|
595 |
+
|
596 |
+
box-shadow: inset 0 0 3px #111;
|
597 |
+
}
|
598 |
+
|
599 |
+
.dataTables_wrapper .dataTables_processing {
|
600 |
+
position: absolute;
|
601 |
+
top: 50%;
|
602 |
+
left: 50%;
|
603 |
+
width: 100%;
|
604 |
+
height: 40px;
|
605 |
+
margin-left: -50%;
|
606 |
+
margin-top: -25px;
|
607 |
+
padding-top: 20px;
|
608 |
+
text-align: center;
|
609 |
+
font-size: 1.2em;
|
610 |
+
background-color: white;
|
611 |
+
background: -webkit-gradient(linear, left top, right top, color-stop(0%, rgba(255, 255, 255, 0)), color-stop(25%, rgba(255, 255, 255, 0.9)), color-stop(75%, rgba(255, 255, 255, 0.9)), color-stop(100%, rgba(255, 255, 255, 0)));
|
612 |
+
/* Chrome,Safari4+ */
|
613 |
+
|
614 |
+
background: -webkit-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
615 |
+
/* Chrome10+,Safari5.1+ */
|
616 |
+
|
617 |
+
background: -moz-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
618 |
+
/* FF3.6+ */
|
619 |
+
|
620 |
+
background: -ms-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
621 |
+
/* IE10+ */
|
622 |
+
|
623 |
+
background: -o-linear-gradient(left, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
624 |
+
/* Opera 11.10+ */
|
625 |
+
|
626 |
+
background: linear-gradient(to right, rgba(255, 255, 255, 0) 0%, rgba(255, 255, 255, 0.9) 25%, rgba(255, 255, 255, 0.9) 75%, rgba(255, 255, 255, 0) 100%);
|
627 |
+
/* W3C */
|
628 |
+
}
|
629 |
+
|
630 |
+
.dataTables_wrapper .dataTables_length,
|
631 |
+
.dataTables_wrapper .dataTables_filter,
|
632 |
+
.dataTables_wrapper .dataTables_info,
|
633 |
+
.dataTables_wrapper .dataTables_processing,
|
634 |
+
.dataTables_wrapper .dataTables_paginate {
|
635 |
+
color: #666666;
|
636 |
+
}
|
637 |
+
|
638 |
+
.dataTables_wrapper .dataTables_scroll {
|
639 |
+
clear: both;
|
640 |
+
}
|
641 |
+
|
642 |
+
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody {
|
643 |
+
*margin-top: -1px;
|
644 |
+
-webkit-overflow-scrolling: touch;
|
645 |
+
}
|
646 |
+
|
647 |
+
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody th > div.dataTables_sizing,
|
648 |
+
.dataTables_wrapper .dataTables_scroll div.dataTables_scrollBody td > div.dataTables_sizing {
|
649 |
+
height: 0;
|
650 |
+
overflow: hidden;
|
651 |
+
margin: 0 !important;
|
652 |
+
padding: 0 !important;
|
653 |
+
}
|
654 |
+
|
655 |
+
.dataTables_wrapper.no-footer .dataTables_scrollBody {
|
656 |
+
border-bottom: 1px solid #111111;
|
657 |
+
}
|
658 |
+
|
659 |
+
.dataTables_wrapper.no-footer div.dataTables_scrollHead table,
|
660 |
+
.dataTables_wrapper.no-footer div.dataTables_scrollBody table {
|
661 |
+
border-bottom: none;
|
662 |
+
}
|
663 |
+
|
664 |
+
.dataTables_wrapper:after {
|
665 |
+
visibility: hidden;
|
666 |
+
display: block;
|
667 |
+
content: "";
|
668 |
+
clear: both;
|
669 |
+
height: 0;
|
670 |
+
}
|
671 |
+
|
672 |
+
@media screen and (max-width: 767px) {
|
673 |
+
.dataTables_wrapper .dataTables_info,
|
674 |
+
.dataTables_wrapper .dataTables_paginate {
|
675 |
+
float: none;
|
676 |
+
text-align: center;
|
677 |
+
}
|
678 |
+
.dataTables_wrapper .dataTables_paginate {
|
679 |
+
margin-top: 0.5em;
|
680 |
+
}
|
681 |
+
}
|
682 |
+
|
683 |
+
@media screen and (max-width: 640px) {
|
684 |
+
.dataTables_wrapper .dataTables_length,
|
685 |
+
.dataTables_wrapper .dataTables_filter {
|
686 |
+
float: none;
|
687 |
+
text-align: center;
|
688 |
+
}
|
689 |
+
.dataTables_wrapper .dataTables_filter {
|
690 |
+
margin-top: 0.5em;
|
691 |
+
}
|
692 |
+
}
|
693 |
+
|
694 |
+
.wpgmp_location_selection h4 {
|
695 |
+
float: left;
|
696 |
+
}
|
697 |
+
|
698 |
+
.wpgmp_location_selection select {
|
699 |
+
float: right;
|
700 |
+
color: #000000;
|
701 |
+
}
|
702 |
+
|
703 |
+
.helpdask-bootom {
|
704 |
+
position: fixed;
|
705 |
+
right: 30px;
|
706 |
+
bottom: 5px;
|
707 |
+
border-radius: 5px;
|
708 |
+
padding: 0px;
|
709 |
+
background: url(../images/helpdesk.png) no-repeat;
|
710 |
+
width: 150px;
|
711 |
+
height: 83px;
|
712 |
+
color: #fff;
|
713 |
+
font-size: 0px;
|
714 |
+
display: block;
|
715 |
+
opacity: 1;
|
716 |
+
}
|
assets/css/bootstrap.min.flat.css
ADDED
@@ -0,0 +1,8389 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
@import url("https://fonts.googleapis.com/css?family=Lato:400,700,400italic");
|
2 |
+
/*!
|
3 |
+
* bootswatch v3.3.5
|
4 |
+
* Homepage: http://bootswatch.com
|
5 |
+
* Copyright 2012-2015 Thomas Park
|
6 |
+
* Licensed under MIT
|
7 |
+
* Based on Bootstrap
|
8 |
+
*/
|
9 |
+
/*!
|
10 |
+
* Bootstrap v3.3.5 (http://getbootstrap.com)
|
11 |
+
* Copyright 2011-2015 Twitter, Inc.
|
12 |
+
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
13 |
+
*/
|
14 |
+
/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
|
15 |
+
|
16 |
+
html {
|
17 |
+
font-family: sans-serif;
|
18 |
+
-ms-text-size-adjust: 100%;
|
19 |
+
-webkit-text-size-adjust: 100%
|
20 |
+
}
|
21 |
+
|
22 |
+
body {
|
23 |
+
margin: 0
|
24 |
+
}
|
25 |
+
|
26 |
+
article,
|
27 |
+
aside,
|
28 |
+
details,
|
29 |
+
figcaption,
|
30 |
+
figure,
|
31 |
+
footer,
|
32 |
+
header,
|
33 |
+
hgroup,
|
34 |
+
main,
|
35 |
+
menu,
|
36 |
+
nav,
|
37 |
+
section,
|
38 |
+
summary {
|
39 |
+
display: block
|
40 |
+
}
|
41 |
+
|
42 |
+
audio,
|
43 |
+
canvas,
|
44 |
+
progress,
|
45 |
+
video {
|
46 |
+
display: inline-block;
|
47 |
+
vertical-align: baseline
|
48 |
+
}
|
49 |
+
|
50 |
+
audio:not([controls]) {
|
51 |
+
display: none;
|
52 |
+
height: 0
|
53 |
+
}
|
54 |
+
|
55 |
+
[hidden],
|
56 |
+
template {
|
57 |
+
display: none
|
58 |
+
}
|
59 |
+
|
60 |
+
a {
|
61 |
+
background-color: transparent
|
62 |
+
}
|
63 |
+
|
64 |
+
a:active,
|
65 |
+
a:hover {
|
66 |
+
outline: 0
|
67 |
+
}
|
68 |
+
|
69 |
+
abbr[title] {
|
70 |
+
border-bottom: 1px dotted
|
71 |
+
}
|
72 |
+
|
73 |
+
b,
|
74 |
+
strong {
|
75 |
+
font-weight: bold
|
76 |
+
}
|
77 |
+
|
78 |
+
dfn {
|
79 |
+
font-style: italic
|
80 |
+
}
|
81 |
+
|
82 |
+
h1 {
|
83 |
+
font-size: 2em;
|
84 |
+
margin: 0.67em 0
|
85 |
+
}
|
86 |
+
|
87 |
+
mark {
|
88 |
+
background: #ff0;
|
89 |
+
color: #000
|
90 |
+
}
|
91 |
+
|
92 |
+
small {
|
93 |
+
font-size: 80%
|
94 |
+
}
|
95 |
+
|
96 |
+
sub,
|
97 |
+
sup {
|
98 |
+
font-size: 75%;
|
99 |
+
line-height: 0;
|
100 |
+
position: relative;
|
101 |
+
vertical-align: baseline
|
102 |
+
}
|
103 |
+
|
104 |
+
sup {
|
105 |
+
top: -0.5em
|
106 |
+
}
|
107 |
+
|
108 |
+
sub {
|
109 |
+
bottom: -0.25em
|
110 |
+
}
|
111 |
+
|
112 |
+
img {
|
113 |
+
border: 0
|
114 |
+
}
|
115 |
+
|
116 |
+
svg:not(:root) {
|
117 |
+
overflow: hidden
|
118 |
+
}
|
119 |
+
|
120 |
+
figure {
|
121 |
+
margin: 1em 40px
|
122 |
+
}
|
123 |
+
|
124 |
+
hr {
|
125 |
+
-webkit-box-sizing: content-box;
|
126 |
+
-moz-box-sizing: content-box;
|
127 |
+
box-sizing: content-box;
|
128 |
+
height: 0
|
129 |
+
}
|
130 |
+
|
131 |
+
pre {
|
132 |
+
overflow: auto
|
133 |
+
}
|
134 |
+
|
135 |
+
code,
|
136 |
+
kbd,
|
137 |
+
pre,
|
138 |
+
samp {
|
139 |
+
font-family: monospace, monospace;
|
140 |
+
font-size: 1em
|
141 |
+
}
|
142 |
+
|
143 |
+
button,
|
144 |
+
input,
|
145 |
+
optgroup,
|
146 |
+
select,
|
147 |
+
textarea {
|
148 |
+
color: inherit;
|
149 |
+
font: inherit;
|
150 |
+
margin: 0
|
151 |
+
}
|
152 |
+
|
153 |
+
button {
|
154 |
+
overflow: visible
|
155 |
+
}
|
156 |
+
|
157 |
+
button,
|
158 |
+
select {
|
159 |
+
text-transform: none
|
160 |
+
}
|
161 |
+
|
162 |
+
button,
|
163 |
+
html input[type="button"],
|
164 |
+
input[type="reset"],
|
165 |
+
input[type="submit"] {
|
166 |
+
-webkit-appearance: button;
|
167 |
+
cursor: pointer
|
168 |
+
}
|
169 |
+
|
170 |
+
button[disabled],
|
171 |
+
html input[disabled] {
|
172 |
+
cursor: default
|
173 |
+
}
|
174 |
+
|
175 |
+
button::-moz-focus-inner,
|
176 |
+
input::-moz-focus-inner {
|
177 |
+
border: 0;
|
178 |
+
padding: 0
|
179 |
+
}
|
180 |
+
|
181 |
+
input {
|
182 |
+
line-height: normal
|
183 |
+
}
|
184 |
+
|
185 |
+
input[type="checkbox"],
|
186 |
+
input[type="radio"] {
|
187 |
+
-webkit-box-sizing: border-box;
|
188 |
+
-moz-box-sizing: border-box;
|
189 |
+
box-sizing: border-box;
|
190 |
+
padding: 0
|
191 |
+
}
|
192 |
+
|
193 |
+
input[type="number"]::-webkit-inner-spin-button,
|
194 |
+
input[type="number"]::-webkit-outer-spin-button {
|
195 |
+
height: auto
|
196 |
+
}
|
197 |
+
|
198 |
+
input[type="search"] {
|
199 |
+
-webkit-appearance: textfield;
|
200 |
+
-webkit-box-sizing: content-box;
|
201 |
+
-moz-box-sizing: content-box;
|
202 |
+
box-sizing: content-box
|
203 |
+
}
|
204 |
+
|
205 |
+
input[type="search"]::-webkit-search-cancel-button,
|
206 |
+
input[type="search"]::-webkit-search-decoration {
|
207 |
+
-webkit-appearance: none
|
208 |
+
}
|
209 |
+
|
210 |
+
fieldset {
|
211 |
+
border: 1px solid #c0c0c0;
|
212 |
+
margin: 0 2px;
|
213 |
+
padding: 0.35em 0.625em 0.75em
|
214 |
+
}
|
215 |
+
|
216 |
+
legend {
|
217 |
+
border: 0;
|
218 |
+
padding: 0
|
219 |
+
}
|
220 |
+
|
221 |
+
textarea {
|
222 |
+
overflow: auto
|
223 |
+
}
|
224 |
+
|
225 |
+
optgroup {
|
226 |
+
font-weight: bold
|
227 |
+
}
|
228 |
+
|
229 |
+
table {
|
230 |
+
border-collapse: collapse;
|
231 |
+
border-spacing: 0
|
232 |
+
}
|
233 |
+
|
234 |
+
td,
|
235 |
+
th {
|
236 |
+
padding: 0
|
237 |
+
}
|
238 |
+
/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */
|
239 |
+
|
240 |
+
@media print {
|
241 |
+
*,
|
242 |
+
*:before,
|
243 |
+
*:after {
|
244 |
+
background: transparent !important;
|
245 |
+
color: #000 !important;
|
246 |
+
-webkit-box-shadow: none !important;
|
247 |
+
box-shadow: none !important;
|
248 |
+
text-shadow: none !important
|
249 |
+
}
|
250 |
+
a,
|
251 |
+
a:visited {
|
252 |
+
text-decoration: underline
|
253 |
+
}
|
254 |
+
a[href]:after {
|
255 |
+
content: " (" attr(href) ")"
|
256 |
+
}
|
257 |
+
abbr[title]:after {
|
258 |
+
content: " (" attr(title) ")"
|
259 |
+
}
|
260 |
+
a[href^="#"]:after,
|
261 |
+
a[href^="javascript:"]:after {
|
262 |
+
content: ""
|
263 |
+
}
|
264 |
+
pre,
|
265 |
+
blockquote {
|
266 |
+
border: 1px solid #999;
|
267 |
+
page-break-inside: avoid
|
268 |
+
}
|
269 |
+
thead {
|
270 |
+
display: table-header-group
|
271 |
+
}
|
272 |
+
tr,
|
273 |
+
img {
|
274 |
+
page-break-inside: avoid
|
275 |
+
}
|
276 |
+
img {
|
277 |
+
max-width: 100% !important
|
278 |
+
}
|
279 |
+
p,
|
280 |
+
h2,
|
281 |
+
h3 {
|
282 |
+
orphans: 3;
|
283 |
+
widows: 3
|
284 |
+
}
|
285 |
+
h2,
|
286 |
+
h3 {
|
287 |
+
page-break-after: avoid
|
288 |
+
}
|
289 |
+
.navbar {
|
290 |
+
display: none
|
291 |
+
}
|
292 |
+
.btn>.caret,
|
293 |
+
.dropup>.btn>.caret {
|
294 |
+
border-top-color: #000 !important
|
295 |
+
}
|
296 |
+
.label {
|
297 |
+
border: 1px solid #000
|
298 |
+
}
|
299 |
+
.table {
|
300 |
+
border-collapse: collapse !important
|
301 |
+
}
|
302 |
+
.table td,
|
303 |
+
.table th {
|
304 |
+
background-color: #fff !important
|
305 |
+
}
|
306 |
+
.table-bordered th,
|
307 |
+
.table-bordered td {
|
308 |
+
border: 1px solid #ddd !important
|
309 |
+
}
|
310 |
+
}
|
311 |
+
|
312 |
+
@font-face {
|
313 |
+
font-family: 'Glyphicons Halflings';
|
314 |
+
src: url('../fonts/glyphicons-halflings-regular.eot');
|
315 |
+
src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg')
|
316 |
+
}
|
317 |
+
|
318 |
+
.glyphicon {
|
319 |
+
position: relative;
|
320 |
+
top: 1px;
|
321 |
+
display: inline-block;
|
322 |
+
font-family: 'Glyphicons Halflings';
|
323 |
+
font-style: normal;
|
324 |
+
font-weight: normal;
|
325 |
+
line-height: 1;
|
326 |
+
-webkit-font-smoothing: antialiased;
|
327 |
+
-moz-osx-font-smoothing: grayscale
|
328 |
+
}
|
329 |
+
|
330 |
+
.glyphicon-asterisk:before {
|
331 |
+
content: "\2a"
|
332 |
+
}
|
333 |
+
|
334 |
+
.glyphicon-plus:before {
|
335 |
+
content: "\2b"
|
336 |
+
}
|
337 |
+
|
338 |
+
.glyphicon-euro:before,
|
339 |
+
.glyphicon-eur:before {
|
340 |
+
content: "\20ac"
|
341 |
+
}
|
342 |
+
|
343 |
+
.glyphicon-minus:before {
|
344 |
+
content: "\2212"
|
345 |
+
}
|
346 |
+
|
347 |
+
.glyphicon-cloud:before {
|
348 |
+
content: "\2601"
|
349 |
+
}
|
350 |
+
|
351 |
+
.glyphicon-envelope:before {
|
352 |
+
content: "\2709"
|
353 |
+
}
|
354 |
+
|
355 |
+
.glyphicon-pencil:before {
|
356 |
+
content: "\270f"
|
357 |
+
}
|
358 |
+
|
359 |
+
.glyphicon-glass:before {
|
360 |
+
content: "\e001"
|
361 |
+
}
|
362 |
+
|
363 |
+
.glyphicon-music:before {
|
364 |
+
content: "\e002"
|
365 |
+
}
|
366 |
+
|
367 |
+
.glyphicon-search:before {
|
368 |
+
content: "\e003"
|
369 |
+
}
|
370 |
+
|
371 |
+
.glyphicon-heart:before {
|
372 |
+
content: "\e005"
|
373 |
+
}
|
374 |
+
|
375 |
+
.glyphicon-star:before {
|
376 |
+
content: "\e006"
|
377 |
+
}
|
378 |
+
|
379 |
+
.glyphicon-star-empty:before {
|
380 |
+
content: "\e007"
|
381 |
+
}
|
382 |
+
|
383 |
+
.glyphicon-user:before {
|
384 |
+
content: "\e008"
|
385 |
+
}
|
386 |
+
|
387 |
+
.glyphicon-film:before {
|
388 |
+
content: "\e009"
|
389 |
+
}
|
390 |
+
|
391 |
+
.glyphicon-th-large:before {
|
392 |
+
content: "\e010"
|
393 |
+
}
|
394 |
+
|
395 |
+
.glyphicon-th:before {
|
396 |
+
content: "\e011"
|
397 |
+
}
|
398 |
+
|
399 |
+
.glyphicon-th-list:before {
|
400 |
+
content: "\e012"
|
401 |
+
}
|
402 |
+
|
403 |
+
.glyphicon-ok:before {
|
404 |
+
content: "\e013"
|
405 |
+
}
|
406 |
+
|
407 |
+
.glyphicon-remove:before {
|
408 |
+
content: "\e014"
|
409 |
+
}
|
410 |
+
|
411 |
+
.glyphicon-zoom-in:before {
|
412 |
+
content: "\e015"
|
413 |
+
}
|
414 |
+
|
415 |
+
.glyphicon-zoom-out:before {
|
416 |
+
content: "\e016"
|
417 |
+
}
|
418 |
+
|
419 |
+
.glyphicon-off:before {
|
420 |
+
content: "\e017"
|
421 |
+
}
|
422 |
+
|
423 |
+
.glyphicon-signal:before {
|
424 |
+
content: "\e018"
|
425 |
+
}
|
426 |
+
|
427 |
+
.glyphicon-cog:before {
|
428 |
+
content: "\e019"
|
429 |
+
}
|
430 |
+
|
431 |
+
.glyphicon-trash:before {
|
432 |
+
content: "\e020"
|
433 |
+
}
|
434 |
+
|
435 |
+
.glyphicon-home:before {
|
436 |
+
content: "\e021"
|
437 |
+
}
|
438 |
+
|
439 |
+
.glyphicon-file:before {
|
440 |
+
content: "\e022"
|
441 |
+
}
|
442 |
+
|
443 |
+
.glyphicon-time:before {
|
444 |
+
content: "\e023"
|
445 |
+
}
|
446 |
+
|
447 |
+
.glyphicon-road:before {
|
448 |
+
content: "\e024"
|
449 |
+
}
|
450 |
+
|
451 |
+
.glyphicon-download-alt:before {
|
452 |
+
content: "\e025"
|
453 |
+
}
|
454 |
+
|
455 |
+
.glyphicon-download:before {
|
456 |
+
content: "\e026"
|
457 |
+
}
|
458 |
+
|
459 |
+
.glyphicon-upload:before {
|
460 |
+
content: "\e027"
|
461 |
+
}
|
462 |
+
|
463 |
+
.glyphicon-inbox:before {
|
464 |
+
content: "\e028"
|
465 |
+
}
|
466 |
+
|
467 |
+
.glyphicon-play-circle:before {
|
468 |
+
content: "\e029"
|
469 |
+
}
|
470 |
+
|
471 |
+
.glyphicon-repeat:before {
|
472 |
+
content: "\e030"
|
473 |
+
}
|
474 |
+
|
475 |
+
.glyphicon-refresh:before {
|
476 |
+
content: "\e031"
|
477 |
+
}
|
478 |
+
|
479 |
+
.glyphicon-list-alt:before {
|
480 |
+
content: "\e032"
|
481 |
+
}
|
482 |
+
|
483 |
+
.glyphicon-lock:before {
|
484 |
+
content: "\e033"
|
485 |
+
}
|
486 |
+
|
487 |
+
.glyphicon-flag:before {
|
488 |
+
content: "\e034"
|
489 |
+
}
|
490 |
+
|
491 |
+
.glyphicon-headphones:before {
|
492 |
+
content: "\e035"
|
493 |
+
}
|
494 |
+
|
495 |
+
.glyphicon-volume-off:before {
|
496 |
+
content: "\e036"
|
497 |
+
}
|
498 |
+
|
499 |
+
.glyphicon-volume-down:before {
|
500 |
+
content: "\e037"
|
501 |
+
}
|
502 |
+
|
503 |
+
.glyphicon-volume-up:before {
|
504 |
+
content: "\e038"
|
505 |
+
}
|
506 |
+
|
507 |
+
.glyphicon-qrcode:before {
|
508 |
+
content: "\e039"
|
509 |
+
}
|
510 |
+
|
511 |
+
.glyphicon-barcode:before {
|
512 |
+
content: "\e040"
|
513 |
+
}
|
514 |
+
|
515 |
+
.glyphicon-tag:before {
|
516 |
+
content: "\e041"
|
517 |
+
}
|
518 |
+
|
519 |
+
.glyphicon-tags:before {
|
520 |
+
content: "\e042"
|
521 |
+
}
|
522 |
+
|
523 |
+
.glyphicon-book:before {
|
524 |
+
content: "\e043"
|
525 |
+
}
|
526 |
+
|
527 |
+
.glyphicon-bookmark:before {
|
528 |
+
content: "\e044"
|
529 |
+
}
|
530 |
+
|
531 |
+
.glyphicon-print:before {
|
532 |
+
content: "\e045"
|
533 |
+
}
|
534 |
+
|
535 |
+
.glyphicon-camera:before {
|
536 |
+
content: "\e046"
|
537 |
+
}
|
538 |
+
|
539 |
+
.glyphicon-font:before {
|
540 |
+
content: "\e047"
|
541 |
+
}
|
542 |
+
|
543 |
+
.glyphicon-bold:before {
|
544 |
+
content: "\e048"
|
545 |
+
}
|
546 |
+
|
547 |
+
.glyphicon-italic:before {
|
548 |
+
content: "\e049"
|
549 |
+
}
|
550 |
+
|
551 |
+
.glyphicon-text-height:before {
|
552 |
+
content: "\e050"
|
553 |
+
}
|
554 |
+
|
555 |
+
.glyphicon-text-width:before {
|
556 |
+
content: "\e051"
|
557 |
+
}
|
558 |
+
|
559 |
+
.glyphicon-align-left:before {
|
560 |
+
content: "\e052"
|
561 |
+
}
|
562 |
+
|
563 |
+
.glyphicon-align-center:before {
|
564 |
+
content: "\e053"
|
565 |
+
}
|
566 |
+
|
567 |
+
.glyphicon-align-right:before {
|
568 |
+
content: "\e054"
|
569 |
+
}
|
570 |
+
|
571 |
+
.glyphicon-align-justify:before {
|
572 |
+
content: "\e055"
|
573 |
+
}
|
574 |
+
|
575 |
+
.glyphicon-list:before {
|
576 |
+
content: "\e056"
|
577 |
+
}
|
578 |
+
|
579 |
+
.glyphicon-indent-left:before {
|
580 |
+
content: "\e057"
|
581 |
+
}
|
582 |
+
|
583 |
+
.glyphicon-indent-right:before {
|
584 |
+
content: "\e058"
|
585 |
+
}
|
586 |
+
|
587 |
+
.glyphicon-facetime-video:before {
|
588 |
+
content: "\e059"
|
589 |
+
}
|
590 |
+
|
591 |
+
.glyphicon-picture:before {
|
592 |
+
content: "\e060"
|
593 |
+
}
|
594 |
+
|
595 |
+
.glyphicon-map-marker:before {
|
596 |
+
content: "\e062"
|
597 |
+
}
|
598 |
+
|
599 |
+
.glyphicon-adjust:before {
|
600 |
+
content: "\e063"
|
601 |
+
}
|
602 |
+
|
603 |
+
.glyphicon-tint:before {
|
604 |
+
content: "\e064"
|
605 |
+
}
|
606 |
+
|
607 |
+
.glyphicon-edit:before {
|
608 |
+
content: "\e065"
|
609 |
+
}
|
610 |
+
|
611 |
+
.glyphicon-share:before {
|
612 |
+
content: "\e066"
|
613 |
+
}
|
614 |
+
|
615 |
+
.glyphicon-check:before {
|
616 |
+
content: "\e067"
|
617 |
+
}
|
618 |
+
|
619 |
+
.glyphicon-move:before {
|
620 |
+
content: "\e068"
|
621 |
+
}
|
622 |
+
|
623 |
+
.glyphicon-step-backward:before {
|
624 |
+
content: "\e069"
|
625 |
+
}
|
626 |
+
|
627 |
+
.glyphicon-fast-backward:before {
|
628 |
+
content: "\e070"
|
629 |
+
}
|
630 |
+
|
631 |
+
.glyphicon-backward:before {
|
632 |
+
content: "\e071"
|
633 |
+
}
|
634 |
+
|
635 |
+
.glyphicon-play:before {
|
636 |
+
content: "\e072"
|
637 |
+
}
|
638 |
+
|
639 |
+
.glyphicon-pause:before {
|
640 |
+
content: "\e073"
|
641 |
+
}
|
642 |
+
|
643 |
+
.glyphicon-stop:before {
|
644 |
+
content: "\e074"
|
645 |
+
}
|
646 |
+
|
647 |
+
.glyphicon-forward:before {
|
648 |
+
content: "\e075"
|
649 |
+
}
|
650 |
+
|
651 |
+
.glyphicon-fast-forward:before {
|
652 |
+
content: "\e076"
|
653 |
+
}
|
654 |
+
|
655 |
+
.glyphicon-step-forward:before {
|
656 |
+
content: "\e077"
|
657 |
+
}
|
658 |
+
|
659 |
+
.glyphicon-eject:before {
|
660 |
+
content: "\e078"
|
661 |
+
}
|
662 |
+
|
663 |
+
.glyphicon-chevron-left:before {
|
664 |
+
content: "\e079"
|
665 |
+
}
|
666 |
+
|
667 |
+
.glyphicon-chevron-right:before {
|
668 |
+
content: "\e080"
|
669 |
+
}
|
670 |
+
|
671 |
+
.glyphicon-plus-sign:before {
|
672 |
+
content: "\e081"
|
673 |
+
}
|
674 |
+
|
675 |
+
.glyphicon-minus-sign:before {
|
676 |
+
content: "\e082"
|
677 |
+
}
|
678 |
+
|
679 |
+
.glyphicon-remove-sign:before {
|
680 |
+
content: "\e083"
|
681 |
+
}
|
682 |
+
|
683 |
+
.glyphicon-ok-sign:before {
|
684 |
+
content: "\e084"
|
685 |
+
}
|
686 |
+
|
687 |
+
.glyphicon-question-sign:before {
|
688 |
+
content: "\e085"
|
689 |
+
}
|
690 |
+
|
691 |
+
.glyphicon-info-sign:before {
|
692 |
+
content: "\e086"
|
693 |
+
}
|
694 |
+
|
695 |
+
.glyphicon-screenshot:before {
|
696 |
+
content: "\e087"
|
697 |
+
}
|
698 |
+
|
699 |
+
.glyphicon-remove-circle:before {
|
700 |
+
content: "\e088"
|
701 |
+
}
|
702 |
+
|
703 |
+
.glyphicon-ok-circle:before {
|
704 |
+
content: "\e089"
|
705 |
+
}
|
706 |
+
|
707 |
+
.glyphicon-ban-circle:before {
|
708 |
+
content: "\e090"
|
709 |
+
}
|
710 |
+
|
711 |
+
.glyphicon-arrow-left:before {
|
712 |
+
content: "\e091"
|
713 |
+
}
|
714 |
+
|
715 |
+
.glyphicon-arrow-right:before {
|
716 |
+
content: "\e092"
|
717 |
+
}
|
718 |
+
|
719 |
+
.glyphicon-arrow-up:before {
|
720 |
+
content: "\e093"
|
721 |
+
}
|
722 |
+
|
723 |
+
.glyphicon-arrow-down:before {
|
724 |
+
content: "\e094"
|
725 |
+
}
|
726 |
+
|
727 |
+
.glyphicon-share-alt:before {
|
728 |
+
content: "\e095"
|
729 |
+
}
|
730 |
+
|
731 |
+
.glyphicon-resize-full:before {
|
732 |
+
content: "\e096"
|
733 |
+
}
|
734 |
+
|
735 |
+
.glyphicon-resize-small:before {
|
736 |
+
content: "\e097"
|
737 |
+
}
|
738 |
+
|
739 |
+
.glyphicon-exclamation-sign:before {
|
740 |
+
content: "\e101"
|
741 |
+
}
|
742 |
+
|
743 |
+
.glyphicon-gift:before {
|
744 |
+
content: "\e102"
|
745 |
+
}
|
746 |
+
|
747 |
+
.glyphicon-leaf:before {
|
748 |
+
content: "\e103"
|
749 |
+
}
|
750 |
+
|
751 |
+
.glyphicon-fire:before {
|
752 |
+
content: "\e104"
|
753 |
+
}
|
754 |
+
|
755 |
+
.glyphicon-eye-open:before {
|
756 |
+
content: "\e105"
|
757 |
+
}
|
758 |
+
|
759 |
+
.glyphicon-eye-close:before {
|
760 |
+
content: "\e106"
|
761 |
+
}
|
762 |
+
|
763 |
+
.glyphicon-warning-sign:before {
|
764 |
+
content: "\e107"
|
765 |
+
}
|
766 |
+
|
767 |
+
.glyphicon-plane:before {
|
768 |
+
content: "\e108"
|
769 |
+
}
|
770 |
+
|
771 |
+
.glyphicon-calendar:before {
|
772 |
+
content: "\e109"
|
773 |
+
}
|
774 |
+
|
775 |
+
.glyphicon-random:before {
|
776 |
+
content: "\e110"
|
777 |
+
}
|
778 |
+
|
779 |
+
.glyphicon-comment:before {
|
780 |
+
content: "\e111"
|
781 |
+
}
|
782 |
+
|
783 |
+
.glyphicon-magnet:before {
|
784 |
+
content: "\e112"
|
785 |
+
}
|
786 |
+
|
787 |
+
.glyphicon-chevron-up:before {
|
788 |
+
content: "\e113"
|
789 |
+
}
|
790 |
+
|
791 |
+
.glyphicon-chevron-down:before {
|
792 |
+
content: "\e114"
|
793 |
+
}
|
794 |
+
|
795 |
+
.glyphicon-retweet:before {
|
796 |
+
content: "\e115"
|
797 |
+
}
|
798 |
+
|
799 |
+
.glyphicon-shopping-cart:before {
|
800 |
+
content: "\e116"
|
801 |
+
}
|
802 |
+
|
803 |
+
.glyphicon-folder-close:before {
|
804 |
+
content: "\e117"
|
805 |
+
}
|
806 |
+
|
807 |
+
.glyphicon-folder-open:before {
|
808 |
+
content: "\e118"
|
809 |
+
}
|
810 |
+
|
811 |
+
.glyphicon-resize-vertical:before {
|
812 |
+
content: "\e119"
|
813 |
+
}
|
814 |
+
|
815 |
+
.glyphicon-resize-horizontal:before {
|
816 |
+
content: "\e120"
|
817 |
+
}
|
818 |
+
|
819 |
+
.glyphicon-hdd:before {
|
820 |
+
content: "\e121"
|
821 |
+
}
|
822 |
+
|
823 |
+
.glyphicon-bullhorn:before {
|
824 |
+
content: "\e122"
|
825 |
+
}
|
826 |
+
|
827 |
+
.glyphicon-bell:before {
|
828 |
+
content: "\e123"
|
829 |
+
}
|
830 |
+
|
831 |
+
.glyphicon-certificate:before {
|
832 |
+
content: "\e124"
|
833 |
+
}
|
834 |
+
|
835 |
+
.glyphicon-thumbs-up:before {
|
836 |
+
content: "\e125"
|
837 |
+
}
|
838 |
+
|
839 |
+
.glyphicon-thumbs-down:before {
|
840 |
+
content: "\e126"
|
841 |
+
}
|
842 |
+
|
843 |
+
.glyphicon-hand-right:before {
|
844 |
+
content: "\e127"
|
845 |
+
}
|
846 |
+
|
847 |
+
.glyphicon-hand-left:before {
|
848 |
+
content: "\e128"
|
849 |
+
}
|
850 |
+
|
851 |
+
.glyphicon-hand-up:before {
|
852 |
+
content: "\e129"
|
853 |
+
}
|
854 |
+
|
855 |
+
.glyphicon-hand-down:before {
|
856 |
+
content: "\e130"
|
857 |
+
}
|
858 |
+
|
859 |
+
.glyphicon-circle-arrow-right:before {
|
860 |
+
content: "\e131"
|
861 |
+
}
|
862 |
+
|
863 |
+
.glyphicon-circle-arrow-left:before {
|
864 |
+
content: "\e132"
|
865 |
+
}
|
866 |
+
|
867 |
+
.glyphicon-circle-arrow-up:before {
|
868 |
+
content: "\e133"
|
869 |
+
}
|
870 |
+
|
871 |
+
.glyphicon-circle-arrow-down:before {
|
872 |
+
content: "\e134"
|
873 |
+
}
|
874 |
+
|
875 |
+
.glyphicon-globe:before {
|
876 |
+
content: "\e135"
|
877 |
+
}
|
878 |
+
|
879 |
+
.glyphicon-wrench:before {
|
880 |
+
content: "\e136"
|
881 |
+
}
|
882 |
+
|
883 |
+
.glyphicon-tasks:before {
|
884 |
+
content: "\e137"
|
885 |
+
}
|
886 |
+
|
887 |
+
.glyphicon-filter:before {
|
888 |
+
content: "\e138"
|
889 |
+
}
|
890 |
+
|
891 |
+
.glyphicon-briefcase:before {
|
892 |
+
content: "\e139"
|
893 |
+
}
|
894 |
+
|
895 |
+
.glyphicon-fullscreen:before {
|
896 |
+
content: "\e140"
|
897 |
+
}
|
898 |
+
|
899 |
+
.glyphicon-dashboard:before {
|
900 |
+
content: "\e141"
|
901 |
+
}
|
902 |
+
|
903 |
+
.glyphicon-paperclip:before {
|
904 |
+
content: "\e142"
|
905 |
+
}
|
906 |
+
|
907 |
+
.glyphicon-heart-empty:before {
|
908 |
+
content: "\e143"
|
909 |
+
}
|
910 |
+
|
911 |
+
.glyphicon-link:before {
|
912 |
+
content: "\e144"
|
913 |
+
}
|
914 |
+
|
915 |
+
.glyphicon-phone:before {
|
916 |
+
content: "\e145"
|
917 |
+
}
|
918 |
+
|
919 |
+
.glyphicon-pushpin:before {
|
920 |
+
content: "\e146"
|
921 |
+
}
|
922 |
+
|
923 |
+
.glyphicon-usd:before {
|
924 |
+
content: "\e148"
|
925 |
+
}
|
926 |
+
|
927 |
+
.glyphicon-gbp:before {
|
928 |
+
content: "\e149"
|
929 |
+
}
|
930 |
+
|
931 |
+
.glyphicon-sort:before {
|
932 |
+
content: "\e150"
|
933 |
+
}
|
934 |
+
|
935 |
+
.glyphicon-sort-by-alphabet:before {
|
936 |
+
content: "\e151"
|
937 |
+
}
|
938 |
+
|
939 |
+
.glyphicon-sort-by-alphabet-alt:before {
|
940 |
+
content: "\e152"
|
941 |
+
}
|
942 |
+
|
943 |
+
.glyphicon-sort-by-order:before {
|
944 |
+
content: "\e153"
|
945 |
+
}
|
946 |
+
|
947 |
+
.glyphicon-sort-by-order-alt:before {
|
948 |
+
content: "\e154"
|
949 |
+
}
|
950 |
+
|
951 |
+
.glyphicon-sort-by-attributes:before {
|
952 |
+
content: "\e155"
|
953 |
+
}
|
954 |
+
|
955 |
+
.glyphicon-sort-by-attributes-alt:before {
|
956 |
+
content: "\e156"
|
957 |
+
}
|
958 |
+
|
959 |
+
.glyphicon-unchecked:before {
|
960 |
+
content: "\e157"
|
961 |
+
}
|
962 |
+
|
963 |
+
.glyphicon-expand:before {
|
964 |
+
content: "\e158"
|
965 |
+
}
|
966 |
+
|
967 |
+
.glyphicon-collapse-down:before {
|
968 |
+
content: "\e159"
|
969 |
+
}
|
970 |
+
|
971 |
+
.glyphicon-collapse-up:before {
|
972 |
+
content: "\e160"
|
973 |
+
}
|
974 |
+
|
975 |
+
.glyphicon-log-in:before {
|
976 |
+
content: "\e161"
|
977 |
+
}
|
978 |
+
|
979 |
+
.glyphicon-flash:before {
|
980 |
+
content: "\e162"
|
981 |
+
}
|
982 |
+
|
983 |
+
.glyphicon-log-out:before {
|
984 |
+
content: "\e163"
|
985 |
+
}
|
986 |
+
|
987 |
+
.glyphicon-new-window:before {
|
988 |
+
content: "\e164"
|
989 |
+
}
|
990 |
+
|
991 |
+
.glyphicon-record:before {
|
992 |
+
content: "\e165"
|
993 |
+
}
|
994 |
+
|
995 |
+
.glyphicon-save:before {
|
996 |
+
content: "\e166"
|
997 |
+
}
|
998 |
+
|
999 |
+
.glyphicon-open:before {
|
1000 |
+
content: "\e167"
|
1001 |
+
}
|
1002 |
+
|
1003 |
+
.glyphicon-saved:before {
|
1004 |
+
content: "\e168"
|
1005 |
+
}
|
1006 |
+
|
1007 |
+
.glyphicon-import:before {
|
1008 |
+
content: "\e169"
|
1009 |
+
}
|
1010 |
+
|
1011 |
+
.glyphicon-export:before {
|
1012 |
+
content: "\e170"
|
1013 |
+
}
|
1014 |
+
|
1015 |
+
.glyphicon-send:before {
|
1016 |
+
content: "\e171"
|
1017 |
+
}
|
1018 |
+
|
1019 |
+
.glyphicon-floppy-disk:before {
|
1020 |
+
content: "\e172"
|
1021 |
+
}
|
1022 |
+
|
1023 |
+
.glyphicon-floppy-saved:before {
|
1024 |
+
content: "\e173"
|
1025 |
+
}
|
1026 |
+
|
1027 |
+
.glyphicon-floppy-remove:before {
|
1028 |
+
content: "\e174"
|
1029 |
+
}
|
1030 |
+
|
1031 |
+
.glyphicon-floppy-save:before {
|
1032 |
+
content: "\e175"
|
1033 |
+
}
|
1034 |
+
|
1035 |
+
.glyphicon-floppy-open:before {
|
1036 |
+
content: "\e176"
|
1037 |
+
}
|
1038 |
+
|
1039 |
+
.glyphicon-credit-card:before {
|
1040 |
+
content: "\e177"
|
1041 |
+
}
|
1042 |
+
|
1043 |
+
.glyphicon-transfer:before {
|
1044 |
+
content: "\e178"
|
1045 |
+
}
|
1046 |
+
|
1047 |
+
.glyphicon-cutlery:before {
|
1048 |
+
content: "\e179"
|
1049 |
+
}
|
1050 |
+
|
1051 |
+
.glyphicon-header:before {
|
1052 |
+
content: "\e180"
|
1053 |
+
}
|
1054 |
+
|
1055 |
+
.glyphicon-compressed:before {
|
1056 |
+
content: "\e181"
|
1057 |
+
}
|
1058 |
+
|
1059 |
+
.glyphicon-earphone:before {
|
1060 |
+
content: "\e182"
|
1061 |
+
}
|
1062 |
+
|
1063 |
+
.glyphicon-phone-alt:before {
|
1064 |
+
content: "\e183"
|
1065 |
+
}
|
1066 |
+
|
1067 |
+
.glyphicon-tower:before {
|
1068 |
+
content: "\e184"
|
1069 |
+
}
|
1070 |
+
|
1071 |
+
.glyphicon-stats:before {
|
1072 |
+
content: "\e185"
|
1073 |
+
}
|
1074 |
+
|
1075 |
+
.glyphicon-sd-video:before {
|
1076 |
+
content: "\e186"
|
1077 |
+
}
|
1078 |
+
|
1079 |
+
.glyphicon-hd-video:before {
|
1080 |
+
content: "\e187"
|
1081 |
+
}
|
1082 |
+
|
1083 |
+
.glyphicon-subtitles:before {
|
1084 |
+
content: "\e188"
|
1085 |
+
}
|
1086 |
+
|
1087 |
+
.glyphicon-sound-stereo:before {
|
1088 |
+
content: "\e189"
|
1089 |
+
}
|
1090 |
+
|
1091 |
+
.glyphicon-sound-dolby:before {
|
1092 |
+
content: "\e190"
|
1093 |
+
}
|
1094 |
+
|
1095 |
+
.glyphicon-sound-5-1:before {
|
1096 |
+
content: "\e191"
|
1097 |
+
}
|
1098 |
+
|
1099 |
+
.glyphicon-sound-6-1:before {
|
1100 |
+
content: "\e192"
|
1101 |
+
}
|
1102 |
+
|
1103 |
+
.glyphicon-sound-7-1:before {
|
1104 |
+
content: "\e193"
|
1105 |
+
}
|
1106 |
+
|
1107 |
+
.glyphicon-copyright-mark:before {
|
1108 |
+
content: "\e194"
|
1109 |
+
}
|
1110 |
+
|
1111 |
+
.glyphicon-registration-mark:before {
|
1112 |
+
content: "\e195"
|
1113 |
+
}
|
1114 |
+
|
1115 |
+
.glyphicon-cloud-download:before {
|
1116 |
+
content: "\e197"
|
1117 |
+
}
|
1118 |
+
|
1119 |
+
.glyphicon-cloud-upload:before {
|
1120 |
+
content: "\e198"
|
1121 |
+
}
|
1122 |
+
|
1123 |
+
.glyphicon-tree-conifer:before {
|
1124 |
+
content: "\e199"
|
1125 |
+
}
|
1126 |
+
|
1127 |
+
.glyphicon-tree-deciduous:before {
|
1128 |
+
content: "\e200"
|
1129 |
+
}
|
1130 |
+
|
1131 |
+
.glyphicon-cd:before {
|
1132 |
+
content: "\e201"
|
1133 |
+
}
|
1134 |
+
|
1135 |
+
.glyphicon-save-file:before {
|
1136 |
+
content: "\e202"
|
1137 |
+
}
|
1138 |
+
|
1139 |
+
.glyphicon-open-file:before {
|
1140 |
+
content: "\e203"
|
1141 |
+
}
|
1142 |
+
|
1143 |
+
.glyphicon-level-up:before {
|
1144 |
+
content: "\e204"
|
1145 |
+
}
|
1146 |
+
|
1147 |
+
.glyphicon-copy:before {
|
1148 |
+
content: "\e205"
|
1149 |
+
}
|
1150 |
+
|
1151 |
+
.glyphicon-paste:before {
|
1152 |
+
content: "\e206"
|
1153 |
+
}
|
1154 |
+
|
1155 |
+
.glyphicon-alert:before {
|
1156 |
+
content: "\e209"
|
1157 |
+
}
|
1158 |
+
|
1159 |
+
.glyphicon-equalizer:before {
|
1160 |
+
content: "\e210"
|
1161 |
+
}
|
1162 |
+
|
1163 |
+
.glyphicon-king:before {
|
1164 |
+
content: "\e211"
|
1165 |
+
}
|
1166 |
+
|
1167 |
+
.glyphicon-queen:before {
|
1168 |
+
content: "\e212"
|
1169 |
+
}
|
1170 |
+
|
1171 |
+
.glyphicon-pawn:before {
|
1172 |
+
content: "\e213"
|
1173 |
+
}
|
1174 |
+
|
1175 |
+
.glyphicon-bishop:before {
|
1176 |
+
content: "\e214"
|
1177 |
+
}
|
1178 |
+
|
1179 |
+
.glyphicon-knight:before {
|
1180 |
+
content: "\e215"
|
1181 |
+
}
|
1182 |
+
|
1183 |
+
.glyphicon-baby-formula:before {
|
1184 |
+
content: "\e216"
|
1185 |
+
}
|
1186 |
+
|
1187 |
+
.glyphicon-tent:before {
|
1188 |
+
content: "\26fa"
|
1189 |
+
}
|
1190 |
+
|
1191 |
+
.glyphicon-blackboard:before {
|
1192 |
+
content: "\e218"
|
1193 |
+
}
|
1194 |
+
|
1195 |
+
.glyphicon-bed:before {
|
1196 |
+
content: "\e219"
|
1197 |
+
}
|
1198 |
+
|
1199 |
+
.glyphicon-apple:before {
|
1200 |
+
content: "\f8ff"
|
1201 |
+
}
|
1202 |
+
|
1203 |
+
.glyphicon-erase:before {
|
1204 |
+
content: "\e221"
|
1205 |
+
}
|
1206 |
+
|
1207 |
+
.glyphicon-hourglass:before {
|
1208 |
+
content: "\231b"
|
1209 |
+
}
|
1210 |
+
|
1211 |
+
.glyphicon-lamp:before {
|
1212 |
+
content: "\e223"
|
1213 |
+
}
|
1214 |
+
|
1215 |
+
.glyphicon-duplicate:before {
|
1216 |
+
content: "\e224"
|
1217 |
+
}
|
1218 |
+
|
1219 |
+
.glyphicon-piggy-bank:before {
|
1220 |
+
content: "\e225"
|
1221 |
+
}
|
1222 |
+
|
1223 |
+
.glyphicon-scissors:before {
|
1224 |
+
content: "\e226"
|
1225 |
+
}
|
1226 |
+
|
1227 |
+
.glyphicon-bitcoin:before {
|
1228 |
+
content: "\e227"
|
1229 |
+
}
|
1230 |
+
|
1231 |
+
.glyphicon-btc:before {
|
1232 |
+
content: "\e227"
|
1233 |
+
}
|
1234 |
+
|
1235 |
+
.glyphicon-xbt:before {
|
1236 |
+
content: "\e227"
|
1237 |
+
}
|
1238 |
+
|
1239 |
+
.glyphicon-yen:before {
|
1240 |
+
content: "\00a5"
|
1241 |
+
}
|
1242 |
+
|
1243 |
+
.glyphicon-jpy:before {
|
1244 |
+
content: "\00a5"
|
1245 |
+
}
|
1246 |
+
|
1247 |
+
.glyphicon-ruble:before {
|
1248 |
+
content: "\20bd"
|
1249 |
+
}
|
1250 |
+
|
1251 |
+
.glyphicon-rub:before {
|
1252 |
+
content: "\20bd"
|
1253 |
+
}
|
1254 |
+
|
1255 |
+
.glyphicon-scale:before {
|
1256 |
+
content: "\e230"
|
1257 |
+
}
|
1258 |
+
|
1259 |
+
.glyphicon-ice-lolly:before {
|
1260 |
+
content: "\e231"
|
1261 |
+
}
|
1262 |
+
|
1263 |
+
.glyphicon-ice-lolly-tasted:before {
|
1264 |
+
content: "\e232"
|
1265 |
+
}
|
1266 |
+
|
1267 |
+
.glyphicon-education:before {
|
1268 |
+
content: "\e233"
|
1269 |
+
}
|
1270 |
+
|
1271 |
+
.glyphicon-option-horizontal:before {
|
1272 |
+
content: "\e234"
|
1273 |
+
}
|
1274 |
+
|
1275 |
+
.glyphicon-option-vertical:before {
|
1276 |
+
content: "\e235"
|
1277 |
+
}
|
1278 |
+
|
1279 |
+
.glyphicon-menu-hamburger:before {
|
1280 |
+
content: "\e236"
|
1281 |
+
}
|
1282 |
+
|
1283 |
+
.glyphicon-modal-window:before {
|
1284 |
+
content: "\e237"
|
1285 |
+
}
|
1286 |
+
|
1287 |
+
.glyphicon-oil:before {
|
1288 |
+
content: "\e238"
|
1289 |
+
}
|
1290 |
+
|
1291 |
+
.glyphicon-grain:before {
|
1292 |
+
content: "\e239"
|
1293 |
+
}
|
1294 |
+
|
1295 |
+
.glyphicon-sunglasses:before {
|
1296 |
+
content: "\e240"
|
1297 |
+
}
|
1298 |
+
|
1299 |
+
.glyphicon-text-size:before {
|
1300 |
+
content: "\e241"
|
1301 |
+
}
|
1302 |
+
|
1303 |
+
.glyphicon-text-color:before {
|
1304 |
+
content: "\e242"
|
1305 |
+
}
|
1306 |
+
|
1307 |
+
.glyphicon-text-background:before {
|
1308 |
+
content: "\e243"
|
1309 |
+
}
|
1310 |
+
|
1311 |
+
.glyphicon-object-align-top:before {
|
1312 |
+
content: "\e244"
|
1313 |
+
}
|
1314 |
+
|
1315 |
+
.glyphicon-object-align-bottom:before {
|
1316 |
+
content: "\e245"
|
1317 |
+
}
|
1318 |
+
|
1319 |
+
.glyphicon-object-align-horizontal:before {
|
1320 |
+
content: "\e246"
|
1321 |
+
}
|
1322 |
+
|
1323 |
+
.glyphicon-object-align-left:before {
|
1324 |
+
content: "\e247"
|
1325 |
+
}
|
1326 |
+
|
1327 |
+
.glyphicon-object-align-vertical:before {
|
1328 |
+
content: "\e248"
|
1329 |
+
}
|
1330 |
+
|
1331 |
+
.glyphicon-object-align-right:before {
|
1332 |
+
content: "\e249"
|
1333 |
+
}
|
1334 |
+
|
1335 |
+
.glyphicon-triangle-right:before {
|
1336 |
+
content: "\e250"
|
1337 |
+
}
|
1338 |
+
|
1339 |
+
.glyphicon-triangle-left:before {
|
1340 |
+
content: "\e251"
|
1341 |
+
}
|
1342 |
+
|
1343 |
+
.glyphicon-triangle-bottom:before {
|
1344 |
+
content: "\e252"
|
1345 |
+
}
|
1346 |
+
|
1347 |
+
.glyphicon-triangle-top:before {
|
1348 |
+
content: "\e253"
|
1349 |
+
}
|
1350 |
+
|
1351 |
+
.glyphicon-console:before {
|
1352 |
+
content: "\e254"
|
1353 |
+
}
|
1354 |
+
|
1355 |
+
.glyphicon-superscript:before {
|
1356 |
+
content: "\e255"
|
1357 |
+
}
|
1358 |
+
|
1359 |
+
.glyphicon-subscript:before {
|
1360 |
+
content: "\e256"
|
1361 |
+
}
|
1362 |
+
|
1363 |
+
.glyphicon-menu-left:before {
|
1364 |
+
content: "\e257"
|
1365 |
+
}
|
1366 |
+
|
1367 |
+
.glyphicon-menu-right:before {
|
1368 |
+
content: "\e258"
|
1369 |
+
}
|
1370 |
+
|
1371 |
+
.glyphicon-menu-down:before {
|
1372 |
+
content: "\e259"
|
1373 |
+
}
|
1374 |
+
|
1375 |
+
.glyphicon-menu-up:before {
|
1376 |
+
content: "\e260"
|
1377 |
+
}
|
1378 |
+
|
1379 |
+
* {
|
1380 |
+
-webkit-box-sizing: border-box;
|
1381 |
+
-moz-box-sizing: border-box;
|
1382 |
+
box-sizing: border-box
|
1383 |
+
}
|
1384 |
+
|
1385 |
+
*:before,
|
1386 |
+
*:after {
|
1387 |
+
-webkit-box-sizing: border-box;
|
1388 |
+
-moz-box-sizing: border-box;
|
1389 |
+
box-sizing: border-box
|
1390 |
+
}
|
1391 |
+
|
1392 |
+
html {
|
1393 |
+
font-size: 10px;
|
1394 |
+
-webkit-tap-highlight-color: rgba(0, 0, 0, 0)
|
1395 |
+
}
|
1396 |
+
|
1397 |
+
body {
|
1398 |
+
font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
1399 |
+
font-size: 15px;
|
1400 |
+
line-height: 1.42857143;
|
1401 |
+
color: #2c3e50;
|
1402 |
+
background-color: #ffffff
|
1403 |
+
}
|
1404 |
+
|
1405 |
+
input,
|
1406 |
+
button,
|
1407 |
+
select,
|
1408 |
+
textarea {
|
1409 |
+
font-family: inherit;
|
1410 |
+
font-size: inherit;
|
1411 |
+
line-height: inherit
|
1412 |
+
}
|
1413 |
+
|
1414 |
+
a {
|
1415 |
+
color: #555;
|
1416 |
+
text-decoration: none
|
1417 |
+
}
|
1418 |
+
|
1419 |
+
a:hover,
|
1420 |
+
a:focus {
|
1421 |
+
color: #3498db;
|
1422 |
+
text-decoration: underline
|
1423 |
+
}
|
1424 |
+
|
1425 |
+
a:focus {
|
1426 |
+
outline: thin dotted;
|
1427 |
+
outline: 5px auto -webkit-focus-ring-color;
|
1428 |
+
outline-offset: -2px
|
1429 |
+
}
|
1430 |
+
|
1431 |
+
figure {
|
1432 |
+
margin: 0
|
1433 |
+
}
|
1434 |
+
|
1435 |
+
img {
|
1436 |
+
vertical-align: middle
|
1437 |
+
}
|
1438 |
+
|
1439 |
+
.img-responsive,
|
1440 |
+
.thumbnail>img,
|
1441 |
+
.thumbnail a>img,
|
1442 |
+
.carousel-inner>.item>img,
|
1443 |
+
.carousel-inner>.item>a>img {
|
1444 |
+
display: block;
|
1445 |
+
max-width: 100%;
|
1446 |
+
height: auto
|
1447 |
+
}
|
1448 |
+
|
1449 |
+
.img-rounded {
|
1450 |
+
border-radius: 6px
|
1451 |
+
}
|
1452 |
+
|
1453 |
+
.img-thumbnail {
|
1454 |
+
padding: 4px;
|
1455 |
+
line-height: 1.42857143;
|
1456 |
+
background-color: #ffffff;
|
1457 |
+
border: 1px solid #ecf0f1;
|
1458 |
+
border-radius: 4px;
|
1459 |
+
-webkit-transition: all .2s ease-in-out;
|
1460 |
+
-o-transition: all .2s ease-in-out;
|
1461 |
+
transition: all .2s ease-in-out;
|
1462 |
+
display: inline-block;
|
1463 |
+
max-width: 100%;
|
1464 |
+
height: auto
|
1465 |
+
}
|
1466 |
+
|
1467 |
+
.img-circle {
|
1468 |
+
border-radius: 50%
|
1469 |
+
}
|
1470 |
+
|
1471 |
+
hr {
|
1472 |
+
margin-top: 21px;
|
1473 |
+
margin-bottom: 21px;
|
1474 |
+
border: 0;
|
1475 |
+
border-top: 1px solid #ecf0f1
|
1476 |
+
}
|
1477 |
+
|
1478 |
+
.sr-only {
|
1479 |
+
position: absolute;
|
1480 |
+
width: 1px;
|
1481 |
+
height: 1px;
|
1482 |
+
margin: -1px;
|
1483 |
+
padding: 0;
|
1484 |
+
overflow: hidden;
|
1485 |
+
clip: rect(0, 0, 0, 0);
|
1486 |
+
border: 0
|
1487 |
+
}
|
1488 |
+
|
1489 |
+
.sr-only-focusable:active,
|
1490 |
+
.sr-only-focusable:focus {
|
1491 |
+
position: static;
|
1492 |
+
width: auto;
|
1493 |
+
height: auto;
|
1494 |
+
margin: 0;
|
1495 |
+
overflow: visible;
|
1496 |
+
clip: auto
|
1497 |
+
}
|
1498 |
+
|
1499 |
+
[role="button"] {
|
1500 |
+
cursor: pointer
|
1501 |
+
}
|
1502 |
+
|
1503 |
+
h1,
|
1504 |
+
h2,
|
1505 |
+
h3,
|
1506 |
+
h4,
|
1507 |
+
h5,
|
1508 |
+
h6,
|
1509 |
+
.h1,
|
1510 |
+
.h2,
|
1511 |
+
.h3,
|
1512 |
+
.h4,
|
1513 |
+
.h5,
|
1514 |
+
.h6 {
|
1515 |
+
font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
1516 |
+
font-weight: 400;
|
1517 |
+
line-height: 1.1;
|
1518 |
+
color: inherit
|
1519 |
+
}
|
1520 |
+
|
1521 |
+
h1 small,
|
1522 |
+
h2 small,
|
1523 |
+
h3 small,
|
1524 |
+
h4 small,
|
1525 |
+
h5 small,
|
1526 |
+
h6 small,
|
1527 |
+
.h1 small,
|
1528 |
+
.h2 small,
|
1529 |
+
.h3 small,
|
1530 |
+
.h4 small,
|
1531 |
+
.h5 small,
|
1532 |
+
.h6 small,
|
1533 |
+
h1 .small,
|
1534 |
+
h2 .small,
|
1535 |
+
h3 .small,
|
1536 |
+
h4 .small,
|
1537 |
+
h5 .small,
|
1538 |
+
h6 .small,
|
1539 |
+
.h1 .small,
|
1540 |
+
.h2 .small,
|
1541 |
+
.h3 .small,
|
1542 |
+
.h4 .small,
|
1543 |
+
.h5 .small,
|
1544 |
+
.h6 .small {
|
1545 |
+
font-weight: normal;
|
1546 |
+
line-height: 1;
|
1547 |
+
color: #b4bcc2
|
1548 |
+
}
|
1549 |
+
|
1550 |
+
h1,
|
1551 |
+
.h1,
|
1552 |
+
h2,
|
1553 |
+
.h2,
|
1554 |
+
h3,
|
1555 |
+
.h3 {
|
1556 |
+
margin-top: 21px;
|
1557 |
+
margin-bottom: 10.5px
|
1558 |
+
}
|
1559 |
+
|
1560 |
+
h1 small,
|
1561 |
+
.h1 small,
|
1562 |
+
h2 small,
|
1563 |
+
.h2 small,
|
1564 |
+
h3 small,
|
1565 |
+
.h3 small,
|
1566 |
+
h1 .small,
|
1567 |
+
.h1 .small,
|
1568 |
+
h2 .small,
|
1569 |
+
.h2 .small,
|
1570 |
+
h3 .small,
|
1571 |
+
.h3 .small {
|
1572 |
+
font-size: 65%
|
1573 |
+
}
|
1574 |
+
|
1575 |
+
h4,
|
1576 |
+
.h4,
|
1577 |
+
h5,
|
1578 |
+
.h5,
|
1579 |
+
h6,
|
1580 |
+
.h6 {
|
1581 |
+
margin-top: 10.5px;
|
1582 |
+
margin-bottom: 10.5px
|
1583 |
+
}
|
1584 |
+
|
1585 |
+
h4 small,
|
1586 |
+
.h4 small,
|
1587 |
+
h5 small,
|
1588 |
+
.h5 small,
|
1589 |
+
h6 small,
|
1590 |
+
.h6 small,
|
1591 |
+
h4 .small,
|
1592 |
+
.h4 .small,
|
1593 |
+
h5 .small,
|
1594 |
+
.h5 .small,
|
1595 |
+
h6 .small,
|
1596 |
+
.h6 .small {
|
1597 |
+
font-size: 75%
|
1598 |
+
}
|
1599 |
+
|
1600 |
+
h1,
|
1601 |
+
.h1 {
|
1602 |
+
font-size: 39px
|
1603 |
+
}
|
1604 |
+
|
1605 |
+
h2,
|
1606 |
+
.h2 {
|
1607 |
+
font-size: 32px
|
1608 |
+
}
|
1609 |
+
|
1610 |
+
h3,
|
1611 |
+
.h3 {
|
1612 |
+
font-size: 26px
|
1613 |
+
}
|
1614 |
+
|
1615 |
+
h4,
|
1616 |
+
.h4 {
|
1617 |
+
font-size: 16px
|
1618 |
+
}
|
1619 |
+
|
1620 |
+
h5,
|
1621 |
+
.h5 {
|
1622 |
+
font-size: 15px
|
1623 |
+
}
|
1624 |
+
|
1625 |
+
h6,
|
1626 |
+
.h6 {
|
1627 |
+
font-size: 13px
|
1628 |
+
}
|
1629 |
+
|
1630 |
+
p {
|
1631 |
+
margin: 0 0 10.5px
|
1632 |
+
}
|
1633 |
+
|
1634 |
+
.lead {
|
1635 |
+
margin-bottom: 21px;
|
1636 |
+
font-size: 17px;
|
1637 |
+
font-weight: 300;
|
1638 |
+
line-height: 1.4
|
1639 |
+
}
|
1640 |
+
|
1641 |
+
@media (min-width: 768px) {
|
1642 |
+
.lead {
|
1643 |
+
font-size: 22.5px
|
1644 |
+
}
|
1645 |
+
}
|
1646 |
+
|
1647 |
+
small,
|
1648 |
+
.small {
|
1649 |
+
font-size: 86%
|
1650 |
+
}
|
1651 |
+
|
1652 |
+
mark,
|
1653 |
+
.mark {
|
1654 |
+
background-color: #f39c12;
|
1655 |
+
padding: .2em
|
1656 |
+
}
|
1657 |
+
|
1658 |
+
.text-left {
|
1659 |
+
text-align: left
|
1660 |
+
}
|
1661 |
+
|
1662 |
+
.text-right {
|
1663 |
+
text-align: right
|
1664 |
+
}
|
1665 |
+
|
1666 |
+
.text-center {
|
1667 |
+
text-align: center
|
1668 |
+
}
|
1669 |
+
|
1670 |
+
.text-justify {
|
1671 |
+
text-align: justify
|
1672 |
+
}
|
1673 |
+
|
1674 |
+
.text-nowrap {
|
1675 |
+
white-space: nowrap
|
1676 |
+
}
|
1677 |
+
|
1678 |
+
.text-lowercase {
|
1679 |
+
text-transform: lowercase
|
1680 |
+
}
|
1681 |
+
|
1682 |
+
.text-uppercase {
|
1683 |
+
text-transform: uppercase
|
1684 |
+
}
|
1685 |
+
|
1686 |
+
.text-capitalize {
|
1687 |
+
text-transform: capitalize
|
1688 |
+
}
|
1689 |
+
|
1690 |
+
.text-muted {
|
1691 |
+
color: #b4bcc2
|
1692 |
+
}
|
1693 |
+
|
1694 |
+
.text-primary {
|
1695 |
+
color: #2c3e50
|
1696 |
+
}
|
1697 |
+
|
1698 |
+
a.text-primary:hover,
|
1699 |
+
a.text-primary:focus {
|
1700 |
+
color: #1a242f
|
1701 |
+
}
|
1702 |
+
|
1703 |
+
.text-success {
|
1704 |
+
color: #ffffff
|
1705 |
+
}
|
1706 |
+
|
1707 |
+
a.text-success:hover,
|
1708 |
+
a.text-success:focus {
|
1709 |
+
color: #e6e6e6
|
1710 |
+
}
|
1711 |
+
|
1712 |
+
.text-info {
|
1713 |
+
color: #ffffff
|
1714 |
+
}
|
1715 |
+
|
1716 |
+
a.text-info:hover,
|
1717 |
+
a.text-info:focus {
|
1718 |
+
color: #e6e6e6
|
1719 |
+
}
|
1720 |
+
|
1721 |
+
.text-warning {
|
1722 |
+
color: #ffffff
|
1723 |
+
}
|
1724 |
+
|
1725 |
+
a.text-warning:hover,
|
1726 |
+
a.text-warning:focus {
|
1727 |
+
color: #e6e6e6
|
1728 |
+
}
|
1729 |
+
|
1730 |
+
.text-danger {
|
1731 |
+
color: #ffffff
|
1732 |
+
}
|
1733 |
+
|
1734 |
+
a.text-danger:hover,
|
1735 |
+
a.text-danger:focus {
|
1736 |
+
color: #e6e6e6
|
1737 |
+
}
|
1738 |
+
|
1739 |
+
.bg-primary {
|
1740 |
+
color: #fff;
|
1741 |
+
background-color: #2c3e50
|
1742 |
+
}
|
1743 |
+
|
1744 |
+
a.bg-primary:hover,
|
1745 |
+
a.bg-primary:focus {
|
1746 |
+
background-color: #1a242f
|
1747 |
+
}
|
1748 |
+
|
1749 |
+
.bg-success {
|
1750 |
+
background-color: #18bc9c
|
1751 |
+
}
|
1752 |
+
|
1753 |
+
a.bg-success:hover,
|
1754 |
+
a.bg-success:focus {
|
1755 |
+
background-color: #128f76
|
1756 |
+
}
|
1757 |
+
|
1758 |
+
.bg-info {
|
1759 |
+
background-color: #3498db
|
1760 |
+
}
|
1761 |
+
|
1762 |
+
a.bg-info:hover,
|
1763 |
+
a.bg-info:focus {
|
1764 |
+
background-color: #217dbb
|
1765 |
+
}
|
1766 |
+
|
1767 |
+
.bg-warning {
|
1768 |
+
background-color: #f39c12
|
1769 |
+
}
|
1770 |
+
|
1771 |
+
a.bg-warning:hover,
|
1772 |
+
a.bg-warning:focus {
|
1773 |
+
background-color: #c87f0a
|
1774 |
+
}
|
1775 |
+
|
1776 |
+
.bg-danger {
|
1777 |
+
background-color: #e74c3c
|
1778 |
+
}
|
1779 |
+
|
1780 |
+
a.bg-danger:hover,
|
1781 |
+
a.bg-danger:focus {
|
1782 |
+
background-color: #d62c1a
|
1783 |
+
}
|
1784 |
+
|
1785 |
+
.page-header {
|
1786 |
+
padding-bottom: 9.5px;
|
1787 |
+
margin: 42px 0 21px;
|
1788 |
+
border-bottom: 1px solid transparent
|
1789 |
+
}
|
1790 |
+
|
1791 |
+
ul,
|
1792 |
+
ol {
|
1793 |
+
margin-top: 0;
|
1794 |
+
margin-bottom: 10.5px
|
1795 |
+
}
|
1796 |
+
|
1797 |
+
ul ul,
|
1798 |
+
ol ul,
|
1799 |
+
ul ol,
|
1800 |
+
ol ol {
|
1801 |
+
margin-bottom: 0
|
1802 |
+
}
|
1803 |
+
|
1804 |
+
.list-unstyled {
|
1805 |
+
padding-left: 0;
|
1806 |
+
list-style: none
|
1807 |
+
}
|
1808 |
+
|
1809 |
+
.list-inline {
|
1810 |
+
padding-left: 0;
|
1811 |
+
list-style: none;
|
1812 |
+
margin-left: -5px
|
1813 |
+
}
|
1814 |
+
|
1815 |
+
.list-inline>li {
|
1816 |
+
display: inline-block;
|
1817 |
+
padding-left: 5px;
|
1818 |
+
padding-right: 5px
|
1819 |
+
}
|
1820 |
+
|
1821 |
+
dl {
|
1822 |
+
margin-top: 0;
|
1823 |
+
margin-bottom: 21px
|
1824 |
+
}
|
1825 |
+
|
1826 |
+
dt,
|
1827 |
+
dd {
|
1828 |
+
line-height: 1.42857143
|
1829 |
+
}
|
1830 |
+
|
1831 |
+
dt {
|
1832 |
+
font-weight: bold
|
1833 |
+
}
|
1834 |
+
|
1835 |
+
dd {
|
1836 |
+
margin-left: 0
|
1837 |
+
}
|
1838 |
+
|
1839 |
+
@media (min-width: 768px) {
|
1840 |
+
.dl-horizontal dt {
|
1841 |
+
float: left;
|
1842 |
+
width: 160px;
|
1843 |
+
clear: left;
|
1844 |
+
text-align: right;
|
1845 |
+
overflow: hidden;
|
1846 |
+
text-overflow: ellipsis;
|
1847 |
+
white-space: nowrap
|
1848 |
+
}
|
1849 |
+
.dl-horizontal dd {
|
1850 |
+
margin-left: 180px
|
1851 |
+
}
|
1852 |
+
}
|
1853 |
+
|
1854 |
+
abbr[title],
|
1855 |
+
abbr[data-original-title] {
|
1856 |
+
cursor: help;
|
1857 |
+
border-bottom: 1px dotted #b4bcc2
|
1858 |
+
}
|
1859 |
+
|
1860 |
+
.initialism {
|
1861 |
+
font-size: 90%;
|
1862 |
+
text-transform: uppercase
|
1863 |
+
}
|
1864 |
+
|
1865 |
+
blockquote {
|
1866 |
+
padding: 10.5px 21px;
|
1867 |
+
margin: 0 0 21px;
|
1868 |
+
font-size: 18.75px;
|
1869 |
+
border-left: 5px solid #ecf0f1
|
1870 |
+
}
|
1871 |
+
|
1872 |
+
blockquote p:last-child,
|
1873 |
+
blockquote ul:last-child,
|
1874 |
+
blockquote ol:last-child {
|
1875 |
+
margin-bottom: 0
|
1876 |
+
}
|
1877 |
+
|
1878 |
+
blockquote footer,
|
1879 |
+
blockquote small,
|
1880 |
+
blockquote .small {
|
1881 |
+
display: block;
|
1882 |
+
font-size: 80%;
|
1883 |
+
line-height: 1.42857143;
|
1884 |
+
color: #b4bcc2
|
1885 |
+
}
|
1886 |
+
|
1887 |
+
blockquote footer:before,
|
1888 |
+
blockquote small:before,
|
1889 |
+
blockquote .small:before {
|
1890 |
+
content: '\2014 \00A0'
|
1891 |
+
}
|
1892 |
+
|
1893 |
+
.blockquote-reverse,
|
1894 |
+
blockquote.pull-right {
|
1895 |
+
padding-right: 15px;
|
1896 |
+
padding-left: 0;
|
1897 |
+
border-right: 5px solid #ecf0f1;
|
1898 |
+
border-left: 0;
|
1899 |
+
text-align: right
|
1900 |
+
}
|
1901 |
+
|
1902 |
+
.blockquote-reverse footer:before,
|
1903 |
+
blockquote.pull-right footer:before,
|
1904 |
+
.blockquote-reverse small:before,
|
1905 |
+
blockquote.pull-right small:before,
|
1906 |
+
.blockquote-reverse .small:before,
|
1907 |
+
blockquote.pull-right .small:before {
|
1908 |
+
content: ''
|
1909 |
+
}
|
1910 |
+
|
1911 |
+
.blockquote-reverse footer:after,
|
1912 |
+
blockquote.pull-right footer:after,
|
1913 |
+
.blockquote-reverse small:after,
|
1914 |
+
blockquote.pull-right small:after,
|
1915 |
+
.blockquote-reverse .small:after,
|
1916 |
+
blockquote.pull-right .small:after {
|
1917 |
+
content: '\00A0 \2014'
|
1918 |
+
}
|
1919 |
+
|
1920 |
+
address {
|
1921 |
+
margin-bottom: 21px;
|
1922 |
+
font-style: normal;
|
1923 |
+
line-height: 1.42857143
|
1924 |
+
}
|
1925 |
+
|
1926 |
+
code,
|
1927 |
+
kbd,
|
1928 |
+
pre,
|
1929 |
+
samp {
|
1930 |
+
font-family: Menlo, Monaco, Consolas, "Courier New", monospace
|
1931 |
+
}
|
1932 |
+
|
1933 |
+
code {
|
1934 |
+
padding: 2px 4px;
|
1935 |
+
font-size: 90%;
|
1936 |
+
color: #c7254e;
|
1937 |
+
background-color: #f9f2f4;
|
1938 |
+
border-radius: 4px
|
1939 |
+
}
|
1940 |
+
|
1941 |
+
kbd {
|
1942 |
+
padding: 2px 4px;
|
1943 |
+
font-size: 90%;
|
1944 |
+
color: #ffffff;
|
1945 |
+
background-color: #333333;
|
1946 |
+
border-radius: 3px;
|
1947 |
+
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25);
|
1948 |
+
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25)
|
1949 |
+
}
|
1950 |
+
|
1951 |
+
kbd kbd {
|
1952 |
+
padding: 0;
|
1953 |
+
font-size: 100%;
|
1954 |
+
font-weight: bold;
|
1955 |
+
-webkit-box-shadow: none;
|
1956 |
+
box-shadow: none
|
1957 |
+
}
|
1958 |
+
|
1959 |
+
pre {
|
1960 |
+
display: block;
|
1961 |
+
padding: 10px;
|
1962 |
+
margin: 0 0 10.5px;
|
1963 |
+
font-size: 14px;
|
1964 |
+
line-height: 1.42857143;
|
1965 |
+
word-break: break-all;
|
1966 |
+
word-wrap: break-word;
|
1967 |
+
color: #7b8a8b;
|
1968 |
+
background-color: #ecf0f1;
|
1969 |
+
border: 1px solid #cccccc;
|
1970 |
+
border-radius: 4px
|
1971 |
+
}
|
1972 |
+
|
1973 |
+
pre code {
|
1974 |
+
padding: 0;
|
1975 |
+
font-size: inherit;
|
1976 |
+
color: inherit;
|
1977 |
+
white-space: pre-wrap;
|
1978 |
+
background-color: transparent;
|
1979 |
+
border-radius: 0
|
1980 |
+
}
|
1981 |
+
|
1982 |
+
.pre-scrollable {
|
1983 |
+
max-height: 340px;
|
1984 |
+
overflow-y: scroll
|
1985 |
+
}
|
1986 |
+
|
1987 |
+
.container {
|
1988 |
+
margin-right: auto;
|
1989 |
+
margin-left: auto;
|
1990 |
+
padding-left: 15px;
|
1991 |
+
padding-right: 15px
|
1992 |
+
}
|
1993 |
+
|
1994 |
+
@media (min-width: 768px) {
|
1995 |
+
.container {
|
1996 |
+
width: 750px
|
1997 |
+
}
|
1998 |
+
}
|
1999 |
+
|
2000 |
+
@media (min-width: 992px) {
|
2001 |
+
.container {
|
2002 |
+
width: 970px
|
2003 |
+
}
|
2004 |
+
}
|
2005 |
+
|
2006 |
+
@media (min-width: 1200px) {
|
2007 |
+
.container {
|
2008 |
+
width: 1170px
|
2009 |
+
}
|
2010 |
+
}
|
2011 |
+
|
2012 |
+
.container-fluid {
|
2013 |
+
margin-right: auto;
|
2014 |
+
margin-left: auto;
|
2015 |
+
padding-left: 15px;
|
2016 |
+
padding-right: 15px
|
2017 |
+
}
|
2018 |
+
|
2019 |
+
.row {
|
2020 |
+
margin-left: -15px;
|
2021 |
+
margin-right: -15px
|
2022 |
+
}
|
2023 |
+
|
2024 |
+
.col-xs-1,
|
2025 |
+
.col-sm-1,
|
2026 |
+
.col-md-1,
|
2027 |
+
.col-lg-1,
|
2028 |
+
.col-xs-2,
|
2029 |
+
.col-sm-2,
|
2030 |
+
.col-md-2,
|
2031 |
+
.col-lg-2,
|
2032 |
+
.col-xs-3,
|
2033 |
+
.col-sm-3,
|
2034 |
+
.col-md-3,
|
2035 |
+
.col-lg-3,
|
2036 |
+
.col-xs-4,
|
2037 |
+
.col-sm-4,
|
2038 |
+
.col-md-4,
|
2039 |
+
.col-lg-4,
|
2040 |
+
.col-xs-5,
|
2041 |
+
.col-sm-5,
|
2042 |
+
.col-md-5,
|
2043 |
+
.col-lg-5,
|
2044 |
+
.col-xs-6,
|
2045 |
+
.col-sm-6,
|
2046 |
+
.col-md-6,
|
2047 |
+
.col-lg-6,
|
2048 |
+
.col-xs-7,
|
2049 |
+
.col-sm-7,
|
2050 |
+
.col-md-7,
|
2051 |
+
.col-lg-7,
|
2052 |
+
.col-xs-8,
|
2053 |
+
.col-sm-8,
|
2054 |
+
.col-md-8,
|
2055 |
+
.col-lg-8,
|
2056 |
+
.col-xs-9,
|
2057 |
+
.col-sm-9,
|
2058 |
+
.col-md-9,
|
2059 |
+
.col-lg-9,
|
2060 |
+
.col-xs-10,
|
2061 |
+
.col-sm-10,
|
2062 |
+
.col-md-10,
|
2063 |
+
.col-lg-10,
|
2064 |
+
.col-xs-11,
|
2065 |
+
.col-sm-11,
|
2066 |
+
.col-md-11,
|
2067 |
+
.col-lg-11,
|
2068 |
+
.col-xs-12,
|
2069 |
+
.col-sm-12,
|
2070 |
+
.col-md-12,
|
2071 |
+
.col-lg-12 {
|
2072 |
+
position: relative;
|
2073 |
+
min-height: 1px;
|
2074 |
+
padding-left: 15px;
|
2075 |
+
padding-right: 15px
|
2076 |
+
}
|
2077 |
+
|
2078 |
+
.col-xs-1,
|
2079 |
+
.col-xs-2,
|
2080 |
+
.col-xs-3,
|
2081 |
+
.col-xs-4,
|
2082 |
+
.col-xs-5,
|
2083 |
+
.col-xs-6,
|
2084 |
+
.col-xs-7,
|
2085 |
+
.col-xs-8,
|
2086 |
+
.col-xs-9,
|
2087 |
+
.col-xs-10,
|
2088 |
+
.col-xs-11,
|
2089 |
+
.col-xs-12 {
|
2090 |
+
float: left
|
2091 |
+
}
|
2092 |
+
|
2093 |
+
.col-xs-12 {
|
2094 |
+
width: 100%
|
2095 |
+
}
|
2096 |
+
|
2097 |
+
.col-xs-11 {
|
2098 |
+
width: 91.66666667%
|
2099 |
+
}
|
2100 |
+
|
2101 |
+
.col-xs-10 {
|
2102 |
+
width: 83.33333333%
|
2103 |
+
}
|
2104 |
+
|
2105 |
+
.col-xs-9 {
|
2106 |
+
width: 75%
|
2107 |
+
}
|
2108 |
+
|
2109 |
+
.col-xs-8 {
|
2110 |
+
width: 66.66666667%
|
2111 |
+
}
|
2112 |
+
|
2113 |
+
.col-xs-7 {
|
2114 |
+
width: 58.33333333%
|
2115 |
+
}
|
2116 |
+
|
2117 |
+
.col-xs-6 {
|
2118 |
+
width: 50%
|
2119 |
+
}
|
2120 |
+
|
2121 |
+
.col-xs-5 {
|
2122 |
+
width: 41.66666667%
|
2123 |
+
}
|
2124 |
+
|
2125 |
+
.col-xs-4 {
|
2126 |
+
width: 33.33333333%
|
2127 |
+
}
|
2128 |
+
|
2129 |
+
.col-xs-3 {
|
2130 |
+
width: 25%
|
2131 |
+
}
|
2132 |
+
|
2133 |
+
.col-xs-2 {
|
2134 |
+
width: 16.66666667%
|
2135 |
+
}
|
2136 |
+
|
2137 |
+
.col-xs-1 {
|
2138 |
+
width: 8.33333333%
|
2139 |
+
}
|
2140 |
+
|
2141 |
+
.col-xs-pull-12 {
|
2142 |
+
right: 100%
|
2143 |
+
}
|
2144 |
+
|
2145 |
+
.col-xs-pull-11 {
|
2146 |
+
right: 91.66666667%
|
2147 |
+
}
|
2148 |
+
|
2149 |
+
.col-xs-pull-10 {
|
2150 |
+
right: 83.33333333%
|
2151 |
+
}
|
2152 |
+
|
2153 |
+
.col-xs-pull-9 {
|
2154 |
+
right: 75%
|
2155 |
+
}
|
2156 |
+
|
2157 |
+
.col-xs-pull-8 {
|
2158 |
+
right: 66.66666667%
|
2159 |
+
}
|
2160 |
+
|
2161 |
+
.col-xs-pull-7 {
|
2162 |
+
right: 58.33333333%
|
2163 |
+
}
|
2164 |
+
|
2165 |
+
.col-xs-pull-6 {
|
2166 |
+
right: 50%
|
2167 |
+
}
|
2168 |
+
|
2169 |
+
.col-xs-pull-5 {
|
2170 |
+
right: 41.66666667%
|
2171 |
+
}
|
2172 |
+
|
2173 |
+
.col-xs-pull-4 {
|
2174 |
+
right: 33.33333333%
|
2175 |
+
}
|
2176 |
+
|
2177 |
+
.col-xs-pull-3 {
|
2178 |
+
right: 25%
|
2179 |
+
}
|
2180 |
+
|
2181 |
+
.col-xs-pull-2 {
|
2182 |
+
right: 16.66666667%
|
2183 |
+
}
|
2184 |
+
|
2185 |
+
.col-xs-pull-1 {
|
2186 |
+
right: 8.33333333%
|
2187 |
+
}
|
2188 |
+
|
2189 |
+
.col-xs-pull-0 {
|
2190 |
+
right: auto
|
2191 |
+
}
|
2192 |
+
|
2193 |
+
.col-xs-push-12 {
|
2194 |
+
left: 100%
|
2195 |
+
}
|
2196 |
+
|
2197 |
+
.col-xs-push-11 {
|
2198 |
+
left: 91.66666667%
|
2199 |
+
}
|
2200 |
+
|
2201 |
+
.col-xs-push-10 {
|
2202 |
+
left: 83.33333333%
|
2203 |
+
}
|
2204 |
+
|
2205 |
+
.col-xs-push-9 {
|
2206 |
+
left: 75%
|
2207 |
+
}
|
2208 |
+
|
2209 |
+
.col-xs-push-8 {
|
2210 |
+
left: 66.66666667%
|
2211 |
+
}
|
2212 |
+
|
2213 |
+
.col-xs-push-7 {
|
2214 |
+
left: 58.33333333%
|
2215 |
+
}
|
2216 |
+
|
2217 |
+
.col-xs-push-6 {
|
2218 |
+
left: 50%
|
2219 |
+
}
|
2220 |
+
|
2221 |
+
.col-xs-push-5 {
|
2222 |
+
left: 41.66666667%
|
2223 |
+
}
|
2224 |
+
|
2225 |
+
.col-xs-push-4 {
|
2226 |
+
left: 33.33333333%
|
2227 |
+
}
|
2228 |
+
|
2229 |
+
.col-xs-push-3 {
|
2230 |
+
left: 25%
|
2231 |
+
}
|
2232 |
+
|
2233 |
+
.col-xs-push-2 {
|
2234 |
+
left: 16.66666667%
|
2235 |
+
}
|
2236 |
+
|
2237 |
+
.col-xs-push-1 {
|
2238 |
+
left: 8.33333333%
|
2239 |
+
}
|
2240 |
+
|
2241 |
+
.col-xs-push-0 {
|
2242 |
+
left: auto
|
2243 |
+
}
|
2244 |
+
|
2245 |
+
.col-xs-offset-12 {
|
2246 |
+
margin-left: 100%
|
2247 |
+
}
|
2248 |
+
|
2249 |
+
.col-xs-offset-11 {
|
2250 |
+
margin-left: 91.66666667%
|
2251 |
+
}
|
2252 |
+
|
2253 |
+
.col-xs-offset-10 {
|
2254 |
+
margin-left: 83.33333333%
|
2255 |
+
}
|
2256 |
+
|
2257 |
+
.col-xs-offset-9 {
|
2258 |
+
margin-left: 75%
|
2259 |
+
}
|
2260 |
+
|
2261 |
+
.col-xs-offset-8 {
|
2262 |
+
margin-left: 66.66666667%
|
2263 |
+
}
|
2264 |
+
|
2265 |
+
.col-xs-offset-7 {
|
2266 |
+
margin-left: 58.33333333%
|
2267 |
+
}
|
2268 |
+
|
2269 |
+
.col-xs-offset-6 {
|
2270 |
+
margin-left: 50%
|
2271 |
+
}
|
2272 |
+
|
2273 |
+
.col-xs-offset-5 {
|
2274 |
+
margin-left: 41.66666667%
|
2275 |
+
}
|
2276 |
+
|
2277 |
+
.col-xs-offset-4 {
|
2278 |
+
margin-left: 33.33333333%
|
2279 |
+
}
|
2280 |
+
|
2281 |
+
.col-xs-offset-3 {
|
2282 |
+
margin-left: 25%
|
2283 |
+
}
|
2284 |
+
|
2285 |
+
.col-xs-offset-2 {
|
2286 |
+
margin-left: 16.66666667%
|
2287 |
+
}
|
2288 |
+
|
2289 |
+
.col-xs-offset-1 {
|
2290 |
+
margin-left: 8.33333333%
|
2291 |
+
}
|
2292 |
+
|
2293 |
+
.col-xs-offset-0 {
|
2294 |
+
margin-left: 0%
|
2295 |
+
}
|
2296 |
+
|
2297 |
+
@media (min-width: 768px) {
|
2298 |
+
.col-sm-1,
|
2299 |
+
.col-sm-2,
|
2300 |
+
.col-sm-3,
|
2301 |
+
.col-sm-4,
|
2302 |
+
.col-sm-5,
|
2303 |
+
.col-sm-6,
|
2304 |
+
.col-sm-7,
|
2305 |
+
.col-sm-8,
|
2306 |
+
.col-sm-9,
|
2307 |
+
.col-sm-10,
|
2308 |
+
.col-sm-11,
|
2309 |
+
.col-sm-12 {
|
2310 |
+
float: left
|
2311 |
+
}
|
2312 |
+
.col-sm-12 {
|
2313 |
+
width: 100%
|
2314 |
+
}
|
2315 |
+
.col-sm-11 {
|
2316 |
+
width: 91.66666667%
|
2317 |
+
}
|
2318 |
+
.col-sm-10 {
|
2319 |
+
width: 83.33333333%
|
2320 |
+
}
|
2321 |
+
.col-sm-9 {
|
2322 |
+
width: 75%
|
2323 |
+
}
|
2324 |
+
.col-sm-8 {
|
2325 |
+
width: 66.66666667%
|
2326 |
+
}
|
2327 |
+
.col-sm-7 {
|
2328 |
+
width: 58.33333333%
|
2329 |
+
}
|
2330 |
+
.col-sm-6 {
|
2331 |
+
width: 50%
|
2332 |
+
}
|
2333 |
+
.col-sm-5 {
|
2334 |
+
width: 41.66666667%
|
2335 |
+
}
|
2336 |
+
.col-sm-4 {
|
2337 |
+
width: 33.33333333%
|
2338 |
+
}
|
2339 |
+
.col-sm-3 {
|
2340 |
+
width: 25%
|
2341 |
+
}
|
2342 |
+
.col-sm-2 {
|
2343 |
+
width: 16.66666667%
|
2344 |
+
}
|
2345 |
+
.col-sm-1 {
|
2346 |
+
width: 8.33333333%
|
2347 |
+
}
|
2348 |
+
.col-sm-pull-12 {
|
2349 |
+
right: 100%
|
2350 |
+
}
|
2351 |
+
.col-sm-pull-11 {
|
2352 |
+
right: 91.66666667%
|
2353 |
+
}
|
2354 |
+
.col-sm-pull-10 {
|
2355 |
+
right: 83.33333333%
|
2356 |
+
}
|
2357 |
+
.col-sm-pull-9 {
|
2358 |
+
right: 75%
|
2359 |
+
}
|
2360 |
+
.col-sm-pull-8 {
|
2361 |
+
right: 66.66666667%
|
2362 |
+
}
|
2363 |
+
.col-sm-pull-7 {
|
2364 |
+
right: 58.33333333%
|
2365 |
+
}
|
2366 |
+
.col-sm-pull-6 {
|
2367 |
+
right: 50%
|
2368 |
+
}
|
2369 |
+
.col-sm-pull-5 {
|
2370 |
+
right: 41.66666667%
|
2371 |
+
}
|
2372 |
+
.col-sm-pull-4 {
|
2373 |
+
right: 33.33333333%
|
2374 |
+
}
|
2375 |
+
.col-sm-pull-3 {
|
2376 |
+
right: 25%
|
2377 |
+
}
|
2378 |
+
.col-sm-pull-2 {
|
2379 |
+
right: 16.66666667%
|
2380 |
+
}
|
2381 |
+
.col-sm-pull-1 {
|
2382 |
+
right: 8.33333333%
|
2383 |
+
}
|
2384 |
+
.col-sm-pull-0 {
|
2385 |
+
right: auto
|
2386 |
+
}
|
2387 |
+
.col-sm-push-12 {
|
2388 |
+
left: 100%
|
2389 |
+
}
|
2390 |
+
.col-sm-push-11 {
|
2391 |
+
left: 91.66666667%
|
2392 |
+
}
|
2393 |
+
.col-sm-push-10 {
|
2394 |
+
left: 83.33333333%
|
2395 |
+
}
|
2396 |
+
.col-sm-push-9 {
|
2397 |
+
left: 75%
|
2398 |
+
}
|
2399 |
+
.col-sm-push-8 {
|
2400 |
+
left: 66.66666667%
|
2401 |
+
}
|
2402 |
+
.col-sm-push-7 {
|
2403 |
+
left: 58.33333333%
|
2404 |
+
}
|
2405 |
+
.col-sm-push-6 {
|
2406 |
+
left: 50%
|
2407 |
+
}
|
2408 |
+
.col-sm-push-5 {
|
2409 |
+
left: 41.66666667%
|
2410 |
+
}
|
2411 |
+
.col-sm-push-4 {
|
2412 |
+
left: 33.33333333%
|
2413 |
+
}
|
2414 |
+
.col-sm-push-3 {
|
2415 |
+
left: 25%
|
2416 |
+
}
|
2417 |
+
.col-sm-push-2 {
|
2418 |
+
left: 16.66666667%
|
2419 |
+
}
|
2420 |
+
.col-sm-push-1 {
|
2421 |
+
left: 8.33333333%
|
2422 |
+
}
|
2423 |
+
.col-sm-push-0 {
|
2424 |
+
left: auto
|
2425 |
+
}
|
2426 |
+
.col-sm-offset-12 {
|
2427 |
+
margin-left: 100%
|
2428 |
+
}
|
2429 |
+
.col-sm-offset-11 {
|
2430 |
+
margin-left: 91.66666667%
|
2431 |
+
}
|
2432 |
+
.col-sm-offset-10 {
|
2433 |
+
margin-left: 83.33333333%
|
2434 |
+
}
|
2435 |
+
.col-sm-offset-9 {
|
2436 |
+
margin-left: 75%
|
2437 |
+
}
|
2438 |
+
.col-sm-offset-8 {
|
2439 |
+
margin-left: 66.66666667%
|
2440 |
+
}
|
2441 |
+
.col-sm-offset-7 {
|
2442 |
+
margin-left: 58.33333333%
|
2443 |
+
}
|
2444 |
+
.col-sm-offset-6 {
|
2445 |
+
margin-left: 50%
|
2446 |
+
}
|
2447 |
+
.col-sm-offset-5 {
|
2448 |
+
margin-left: 41.66666667%
|
2449 |
+
}
|
2450 |
+
.col-sm-offset-4 {
|
2451 |
+
margin-left: 33.33333333%
|
2452 |
+
}
|
2453 |
+
.col-sm-offset-3 {
|
2454 |
+
margin-left: 25%
|
2455 |
+
}
|
2456 |
+
.col-sm-offset-2 {
|
2457 |
+
margin-left: 16.66666667%
|
2458 |
+
}
|
2459 |
+
.col-sm-offset-1 {
|
2460 |
+
margin-left: 8.33333333%
|
2461 |
+
}
|
2462 |
+
.col-sm-offset-0 {
|
2463 |
+
margin-left: 0%
|
2464 |
+
}
|
2465 |
+
}
|
2466 |
+
|
2467 |
+
@media (min-width: 992px) {
|
2468 |
+
.col-md-1,
|
2469 |
+
.col-md-2,
|
2470 |
+
.col-md-3,
|
2471 |
+
.col-md-4,
|
2472 |
+
.col-md-5,
|
2473 |
+
.col-md-6,
|
2474 |
+
.col-md-7,
|
2475 |
+
.col-md-8,
|
2476 |
+
.col-md-9,
|
2477 |
+
.col-md-10,
|
2478 |
+
.col-md-11,
|
2479 |
+
.col-md-12 {
|
2480 |
+
float: left
|
2481 |
+
}
|
2482 |
+
.col-md-12 {
|
2483 |
+
width: 100%
|
2484 |
+
}
|
2485 |
+
.col-md-11 {
|
2486 |
+
width: 91.66666667%
|
2487 |
+
}
|
2488 |
+
.col-md-10 {
|
2489 |
+
width: 83.33333333%
|
2490 |
+
}
|
2491 |
+
.col-md-9 {
|
2492 |
+
width: 75%
|
2493 |
+
}
|
2494 |
+
.col-md-8 {
|
2495 |
+
width: 66.66666667%
|
2496 |
+
}
|
2497 |
+
.col-md-7 {
|
2498 |
+
width: 58.33333333%
|
2499 |
+
}
|
2500 |
+
.col-md-6 {
|
2501 |
+
width: 50%
|
2502 |
+
}
|
2503 |
+
.col-md-5 {
|
2504 |
+
width: 41.66666667%
|
2505 |
+
}
|
2506 |
+
.col-md-4 {
|
2507 |
+
width: 33.33333333%
|
2508 |
+
}
|
2509 |
+
.col-md-3 {
|
2510 |
+
width: 25%
|
2511 |
+
}
|
2512 |
+
.col-md-2 {
|
2513 |
+
width: 16.66666667%
|
2514 |
+
}
|
2515 |
+
.col-md-1 {
|
2516 |
+
width: 8.33333333%
|
2517 |
+
}
|
2518 |
+
.col-md-pull-12 {
|
2519 |
+
right: 100%
|
2520 |
+
}
|
2521 |
+
.col-md-pull-11 {
|
2522 |
+
right: 91.66666667%
|
2523 |
+
}
|
2524 |
+
.col-md-pull-10 {
|
2525 |
+
right: 83.33333333%
|
2526 |
+
}
|
2527 |
+
.col-md-pull-9 {
|
2528 |
+
right: 75%
|
2529 |
+
}
|
2530 |
+
.col-md-pull-8 {
|
2531 |
+
right: 66.66666667%
|
2532 |
+
}
|
2533 |
+
.col-md-pull-7 {
|
2534 |
+
right: 58.33333333%
|
2535 |
+
}
|
2536 |
+
.col-md-pull-6 {
|
2537 |
+
right: 50%
|
2538 |
+
}
|
2539 |
+
.col-md-pull-5 {
|
2540 |
+
right: 41.66666667%
|
2541 |
+
}
|
2542 |
+
.col-md-pull-4 {
|
2543 |
+
right: 33.33333333%
|
2544 |
+
}
|
2545 |
+
.col-md-pull-3 {
|
2546 |
+
right: 25%
|
2547 |
+
}
|
2548 |
+
.col-md-pull-2 {
|
2549 |
+
right: 16.66666667%
|
2550 |
+
}
|
2551 |
+
.col-md-pull-1 {
|
2552 |
+
right: 8.33333333%
|
2553 |
+
}
|
2554 |
+
.col-md-pull-0 {
|
2555 |
+
right: auto
|
2556 |
+
}
|
2557 |
+
.col-md-push-12 {
|
2558 |
+
left: 100%
|
2559 |
+
}
|
2560 |
+
.col-md-push-11 {
|
2561 |
+
left: 91.66666667%
|
2562 |
+
}
|
2563 |
+
.col-md-push-10 {
|
2564 |
+
left: 83.33333333%
|
2565 |
+
}
|
2566 |
+
.col-md-push-9 {
|
2567 |
+
left: 75%
|
2568 |
+
}
|
2569 |
+
.col-md-push-8 {
|
2570 |
+
left: 66.66666667%
|
2571 |
+
}
|
2572 |
+
.col-md-push-7 {
|
2573 |
+
left: 58.33333333%
|
2574 |
+
}
|
2575 |
+
.col-md-push-6 {
|
2576 |
+
left: 50%
|
2577 |
+
}
|
2578 |
+
.col-md-push-5 {
|
2579 |
+
left: 41.66666667%
|
2580 |
+
}
|
2581 |
+
.col-md-push-4 {
|
2582 |
+
left: 33.33333333%
|
2583 |
+
}
|
2584 |
+
.col-md-push-3 {
|
2585 |
+
left: 25%
|
2586 |
+
}
|
2587 |
+
.col-md-push-2 {
|
2588 |
+
left: 16.66666667%
|
2589 |
+
}
|
2590 |
+
.col-md-push-1 {
|
2591 |
+
left: 8.33333333%
|
2592 |
+
}
|
2593 |
+
.col-md-push-0 {
|
2594 |
+
left: auto
|
2595 |
+
}
|
2596 |
+
.col-md-offset-12 {
|
2597 |
+
margin-left: 100%
|
2598 |
+
}
|
2599 |
+
.col-md-offset-11 {
|
2600 |
+
margin-left: 91.66666667%
|
2601 |
+
}
|
2602 |
+
.col-md-offset-10 {
|
2603 |
+
margin-left: 83.33333333%
|
2604 |
+
}
|
2605 |
+
.col-md-offset-9 {
|
2606 |
+
margin-left: 75%
|
2607 |
+
}
|
2608 |
+
.col-md-offset-8 {
|
2609 |
+
margin-left: 66.66666667%
|
2610 |
+
}
|
2611 |
+
.col-md-offset-7 {
|
2612 |
+
margin-left: 58.33333333%
|
2613 |
+
}
|
2614 |
+
.col-md-offset-6 {
|
2615 |
+
margin-left: 50%
|
2616 |
+
}
|
2617 |
+
.col-md-offset-5 {
|
2618 |
+
margin-left: 41.66666667%
|
2619 |
+
}
|
2620 |
+
.col-md-offset-4 {
|
2621 |
+
margin-left: 33.33333333%
|
2622 |
+
}
|
2623 |
+
.col-md-offset-3 {
|
2624 |
+
margin-left: 25%
|
2625 |
+
}
|
2626 |
+
.col-md-offset-2 {
|
2627 |
+
margin-left: 16.66666667%
|
2628 |
+
}
|
2629 |
+
.col-md-offset-1 {
|
2630 |
+
margin-left: 8.33333333%
|
2631 |
+
}
|
2632 |
+
.col-md-offset-0 {
|
2633 |
+
margin-left: 0%
|
2634 |
+
}
|
2635 |
+
}
|
2636 |
+
|
2637 |
+
@media (min-width: 1200px) {
|
2638 |
+
.col-lg-1,
|
2639 |
+
.col-lg-2,
|
2640 |
+
.col-lg-3,
|
2641 |
+
.col-lg-4,
|
2642 |
+
.col-lg-5,
|
2643 |
+
.col-lg-6,
|
2644 |
+
.col-lg-7,
|
2645 |
+
.col-lg-8,
|
2646 |
+
.col-lg-9,
|
2647 |
+
.col-lg-10,
|
2648 |
+
.col-lg-11,
|
2649 |
+
.col-lg-12 {
|
2650 |
+
float: left
|
2651 |
+
}
|
2652 |
+
.col-lg-12 {
|
2653 |
+
width: 100%
|
2654 |
+
}
|
2655 |
+
.col-lg-11 {
|
2656 |
+
width: 91.66666667%
|
2657 |
+
}
|
2658 |
+
.col-lg-10 {
|
2659 |
+
width: 83.33333333%
|
2660 |
+
}
|
2661 |
+
.col-lg-9 {
|
2662 |
+
width: 75%
|
2663 |
+
}
|
2664 |
+
.col-lg-8 {
|
2665 |
+
width: 66.66666667%
|
2666 |
+
}
|
2667 |
+
.col-lg-7 {
|
2668 |
+
width: 58.33333333%
|
2669 |
+
}
|
2670 |
+
.col-lg-6 {
|
2671 |
+
width: 50%
|
2672 |
+
}
|
2673 |
+
.col-lg-5 {
|
2674 |
+
width: 41.66666667%
|
2675 |
+
}
|
2676 |
+
.col-lg-4 {
|
2677 |
+
width: 33.33333333%
|
2678 |
+
}
|
2679 |
+
.col-lg-3 {
|
2680 |
+
width: 25%
|
2681 |
+
}
|
2682 |
+
.col-lg-2 {
|
2683 |
+
width: 16.66666667%
|
2684 |
+
}
|
2685 |
+
.col-lg-1 {
|
2686 |
+
width: 8.33333333%
|
2687 |
+
}
|
2688 |
+
.col-lg-pull-12 {
|
2689 |
+
right: 100%
|
2690 |
+
}
|
2691 |
+
.col-lg-pull-11 {
|
2692 |
+
right: 91.66666667%
|
2693 |
+
}
|
2694 |
+
.col-lg-pull-10 {
|
2695 |
+
right: 83.33333333%
|
2696 |
+
}
|
2697 |
+
.col-lg-pull-9 {
|
2698 |
+
right: 75%
|
2699 |
+
}
|
2700 |
+
.col-lg-pull-8 {
|
2701 |
+
right: 66.66666667%
|
2702 |
+
}
|
2703 |
+
.col-lg-pull-7 {
|
2704 |
+
right: 58.33333333%
|
2705 |
+
}
|
2706 |
+
.col-lg-pull-6 {
|
2707 |
+
right: 50%
|
2708 |
+
}
|
2709 |
+
.col-lg-pull-5 {
|
2710 |
+
right: 41.66666667%
|
2711 |
+
}
|
2712 |
+
.col-lg-pull-4 {
|
2713 |
+
right: 33.33333333%
|
2714 |
+
}
|
2715 |
+
.col-lg-pull-3 {
|
2716 |
+
right: 25%
|
2717 |
+
}
|
2718 |
+
.col-lg-pull-2 {
|
2719 |
+
right: 16.66666667%
|
2720 |
+
}
|
2721 |
+
.col-lg-pull-1 {
|
2722 |
+
right: 8.33333333%
|
2723 |
+
}
|
2724 |
+
.col-lg-pull-0 {
|
2725 |
+
right: auto
|
2726 |
+
}
|
2727 |
+
.col-lg-push-12 {
|
2728 |
+
left: 100%
|
2729 |
+
}
|
2730 |
+
.col-lg-push-11 {
|
2731 |
+
left: 91.66666667%
|
2732 |
+
}
|
2733 |
+
.col-lg-push-10 {
|
2734 |
+
left: 83.33333333%
|
2735 |
+
}
|
2736 |
+
.col-lg-push-9 {
|
2737 |
+
left: 75%
|
2738 |
+
}
|
2739 |
+
.col-lg-push-8 {
|
2740 |
+
left: 66.66666667%
|
2741 |
+
}
|
2742 |
+
.col-lg-push-7 {
|
2743 |
+
left: 58.33333333%
|
2744 |
+
}
|
2745 |
+
.col-lg-push-6 {
|
2746 |
+
left: 50%
|
2747 |
+
}
|
2748 |
+
.col-lg-push-5 {
|
2749 |
+
left: 41.66666667%
|
2750 |
+
}
|
2751 |
+
.col-lg-push-4 {
|
2752 |
+
left: 33.33333333%
|
2753 |
+
}
|
2754 |
+
.col-lg-push-3 {
|
2755 |
+
left: 25%
|
2756 |
+
}
|
2757 |
+
.col-lg-push-2 {
|
2758 |
+
left: 16.66666667%
|
2759 |
+
}
|
2760 |
+
.col-lg-push-1 {
|
2761 |
+
left: 8.33333333%
|
2762 |
+
}
|
2763 |
+
.col-lg-push-0 {
|
2764 |
+
left: auto
|
2765 |
+
}
|
2766 |
+
.col-lg-offset-12 {
|
2767 |
+
margin-left: 100%
|
2768 |
+
}
|
2769 |
+
.col-lg-offset-11 {
|
2770 |
+
margin-left: 91.66666667%
|
2771 |
+
}
|
2772 |
+
.col-lg-offset-10 {
|
2773 |
+
margin-left: 83.33333333%
|
2774 |
+
}
|
2775 |
+
.col-lg-offset-9 {
|
2776 |
+
margin-left: 75%
|
2777 |
+
}
|
2778 |
+
.col-lg-offset-8 {
|
2779 |
+
margin-left: 66.66666667%
|
2780 |
+
}
|
2781 |
+
.col-lg-offset-7 {
|
2782 |
+
margin-left: 58.33333333%
|
2783 |
+
}
|
2784 |
+
.col-lg-offset-6 {
|
2785 |
+
margin-left: 50%
|
2786 |
+
}
|
2787 |
+
.col-lg-offset-5 {
|
2788 |
+
margin-left: 41.66666667%
|
2789 |
+
}
|
2790 |
+
.col-lg-offset-4 {
|
2791 |
+
margin-left: 33.33333333%
|
2792 |
+
}
|
2793 |
+
.col-lg-offset-3 {
|
2794 |
+
margin-left: 25%
|
2795 |
+
}
|
2796 |
+
.col-lg-offset-2 {
|
2797 |
+
margin-left: 16.66666667%
|
2798 |
+
}
|
2799 |
+
.col-lg-offset-1 {
|
2800 |
+
margin-left: 8.33333333%
|
2801 |
+
}
|
2802 |
+
.col-lg-offset-0 {
|
2803 |
+
margin-left: 0%
|
2804 |
+
}
|
2805 |
+
}
|
2806 |
+
|
2807 |
+
table {
|
2808 |
+
background-color: transparent
|
2809 |
+
}
|
2810 |
+
|
2811 |
+
caption {
|
2812 |
+
padding-top: 8px;
|
2813 |
+
padding-bottom: 8px;
|
2814 |
+
color: #b4bcc2;
|
2815 |
+
text-align: left
|
2816 |
+
}
|
2817 |
+
|
2818 |
+
th {
|
2819 |
+
text-align: left
|
2820 |
+
}
|
2821 |
+
|
2822 |
+
.table {
|
2823 |
+
width: 100%;
|
2824 |
+
max-width: 100%;
|
2825 |
+
margin-bottom: 21px
|
2826 |
+
}
|
2827 |
+
|
2828 |
+
.table>thead>tr>th,
|
2829 |
+
.table>tbody>tr>th,
|
2830 |
+
.table>tfoot>tr>th,
|
2831 |
+
.table>thead>tr>td,
|
2832 |
+
.table>tbody>tr>td,
|
2833 |
+
.table>tfoot>tr>td {
|
2834 |
+
padding: 8px;
|
2835 |
+
line-height: 1.42857143;
|
2836 |
+
vertical-align: top;
|
2837 |
+
border-top: 1px solid #ecf0f1
|
2838 |
+
}
|
2839 |
+
|
2840 |
+
.table>thead>tr>th {
|
2841 |
+
vertical-align: bottom;
|
2842 |
+
border-bottom: 2px solid #ecf0f1
|
2843 |
+
}
|
2844 |
+
|
2845 |
+
.table>caption+thead>tr:first-child>th,
|
2846 |
+
.table>colgroup+thead>tr:first-child>th,
|
2847 |
+
.table>thead:first-child>tr:first-child>th,
|
2848 |
+
.table>caption+thead>tr:first-child>td,
|
2849 |
+
.table>colgroup+thead>tr:first-child>td,
|
2850 |
+
.table>thead:first-child>tr:first-child>td {
|
2851 |
+
border-top: 0
|
2852 |
+
}
|
2853 |
+
|
2854 |
+
.table>tbody+tbody {
|
2855 |
+
border-top: 2px solid #ecf0f1
|
2856 |
+
}
|
2857 |
+
|
2858 |
+
.table .table {
|
2859 |
+
background-color: #ffffff
|
2860 |
+
}
|
2861 |
+
|
2862 |
+
.table-condensed>thead>tr>th,
|
2863 |
+
.table-condensed>tbody>tr>th,
|
2864 |
+
.table-condensed>tfoot>tr>th,
|
2865 |
+
.table-condensed>thead>tr>td,
|
2866 |
+
.table-condensed>tbody>tr>td,
|
2867 |
+
.table-condensed>tfoot>tr>td {
|
2868 |
+
padding: 5px
|
2869 |
+
}
|
2870 |
+
|
2871 |
+
.table-bordered {
|
2872 |
+
border: 1px solid #ecf0f1
|
2873 |
+
}
|
2874 |
+
|
2875 |
+
.table-bordered>thead>tr>th,
|
2876 |
+
.table-bordered>tbody>tr>th,
|
2877 |
+
.table-bordered>tfoot>tr>th,
|
2878 |
+
.table-bordered>thead>tr>td,
|
2879 |
+
.table-bordered>tbody>tr>td,
|
2880 |
+
.table-bordered>tfoot>tr>td {
|
2881 |
+
border: 1px solid #ecf0f1
|
2882 |
+
}
|
2883 |
+
|
2884 |
+
.table-bordered>thead>tr>th,
|
2885 |
+
.table-bordered>thead>tr>td {
|
2886 |
+
border-bottom-width: 2px
|
2887 |
+
}
|
2888 |
+
|
2889 |
+
.table-striped>tbody>tr:nth-of-type(odd) {
|
2890 |
+
background-color: #f9f9f9
|
2891 |
+
}
|
2892 |
+
|
2893 |
+
.table-hover>tbody>tr:hover {
|
2894 |
+
background-color: #ecf0f1
|
2895 |
+
}
|
2896 |
+
|
2897 |
+
table col[class*="col-"] {
|
2898 |
+
position: static;
|
2899 |
+
float: none;
|
2900 |
+
display: table-column
|
2901 |
+
}
|
2902 |
+
|
2903 |
+
table td[class*="col-"],
|
2904 |
+
table th[class*="col-"] {
|
2905 |
+
position: static;
|
2906 |
+
float: none;
|
2907 |
+
display: table-cell
|
2908 |
+
}
|
2909 |
+
|
2910 |
+
.table>thead>tr>td.active,
|
2911 |
+
.table>tbody>tr>td.active,
|
2912 |
+
.table>tfoot>tr>td.active,
|
2913 |
+
.table>thead>tr>th.active,
|
2914 |
+
.table>tbody>tr>th.active,
|
2915 |
+
.table>tfoot>tr>th.active,
|
2916 |
+
.table>thead>tr.active>td,
|
2917 |
+
.table>tbody>tr.active>td,
|
2918 |
+
.table>tfoot>tr.active>td,
|
2919 |
+
.table>thead>tr.active>th,
|
2920 |
+
.table>tbody>tr.active>th,
|
2921 |
+
.table>tfoot>tr.active>th {
|
2922 |
+
background-color: #ecf0f1
|
2923 |
+
}
|
2924 |
+
|
2925 |
+
.table-hover>tbody>tr>td.active:hover,
|
2926 |
+
.table-hover>tbody>tr>th.active:hover,
|
2927 |
+
.table-hover>tbody>tr.active:hover>td,
|
2928 |
+
.table-hover>tbody>tr:hover>.active,
|
2929 |
+
.table-hover>tbody>tr.active:hover>th {
|
2930 |
+
background-color: #dde4e6
|
2931 |
+
}
|
2932 |
+
|
2933 |
+
.table>thead>tr>td.success,
|
2934 |
+
.table>tbody>tr>td.success,
|
2935 |
+
.table>tfoot>tr>td.success,
|
2936 |
+
.table>thead>tr>th.success,
|
2937 |
+
.table>tbody>tr>th.success,
|
2938 |
+
.table>tfoot>tr>th.success,
|
2939 |
+
.table>thead>tr.success>td,
|
2940 |
+
.table>tbody>tr.success>td,
|
2941 |
+
.table>tfoot>tr.success>td,
|
2942 |
+
.table>thead>tr.success>th,
|
2943 |
+
.table>tbody>tr.success>th,
|
2944 |
+
.table>tfoot>tr.success>th {
|
2945 |
+
background-color: #18bc9c
|
2946 |
+
}
|
2947 |
+
|
2948 |
+
.table-hover>tbody>tr>td.success:hover,
|
2949 |
+
.table-hover>tbody>tr>th.success:hover,
|
2950 |
+
.table-hover>tbody>tr.success:hover>td,
|
2951 |
+
.table-hover>tbody>tr:hover>.success,
|
2952 |
+
.table-hover>tbody>tr.success:hover>th {
|
2953 |
+
background-color: #15a589
|
2954 |
+
}
|
2955 |
+
|
2956 |
+
.table>thead>tr>td.info,
|
2957 |
+
.table>tbody>tr>td.info,
|
2958 |
+
.table>tfoot>tr>td.info,
|
2959 |
+
.table>thead>tr>th.info,
|
2960 |
+
.table>tbody>tr>th.info,
|
2961 |
+
.table>tfoot>tr>th.info,
|
2962 |
+
.table>thead>tr.info>td,
|
2963 |
+
.table>tbody>tr.info>td,
|
2964 |
+
.table>tfoot>tr.info>td,
|
2965 |
+
.table>thead>tr.info>th,
|
2966 |
+
.table>tbody>tr.info>th,
|
2967 |
+
.table>tfoot>tr.info>th {
|
2968 |
+
background-color: #3498db
|
2969 |
+
}
|
2970 |
+
|
2971 |
+
.table-hover>tbody>tr>td.info:hover,
|
2972 |
+
.table-hover>tbody>tr>th.info:hover,
|
2973 |
+
.table-hover>tbody>tr.info:hover>td,
|
2974 |
+
.table-hover>tbody>tr:hover>.info,
|
2975 |
+
.table-hover>tbody>tr.info:hover>th {
|
2976 |
+
background-color: #258cd1
|
2977 |
+
}
|
2978 |
+
|
2979 |
+
.table>thead>tr>td.warning,
|
2980 |
+
.table>tbody>tr>td.warning,
|
2981 |
+
.table>tfoot>tr>td.warning,
|
2982 |
+
.table>thead>tr>th.warning,
|
2983 |
+
.table>tbody>tr>th.warning,
|
2984 |
+
.table>tfoot>tr>th.warning,
|
2985 |
+
.table>thead>tr.warning>td,
|
2986 |
+
.table>tbody>tr.warning>td,
|
2987 |
+
.table>tfoot>tr.warning>td,
|
2988 |
+
.table>thead>tr.warning>th,
|
2989 |
+
.table>tbody>tr.warning>th,
|
2990 |
+
.table>tfoot>tr.warning>th {
|
2991 |
+
background-color: #f39c12
|
2992 |
+
}
|
2993 |
+
|
2994 |
+
.table-hover>tbody>tr>td.warning:hover,
|
2995 |
+
.table-hover>tbody>tr>th.warning:hover,
|
2996 |
+
.table-hover>tbody>tr.warning:hover>td,
|
2997 |
+
.table-hover>tbody>tr:hover>.warning,
|
2998 |
+
.table-hover>tbody>tr.warning:hover>th {
|
2999 |
+
background-color: #e08e0b
|
3000 |
+
}
|
3001 |
+
|
3002 |
+
.table>thead>tr>td.danger,
|
3003 |
+
.table>tbody>tr>td.danger,
|
3004 |
+
.table>tfoot>tr>td.danger,
|
3005 |
+
.table>thead>tr>th.danger,
|
3006 |
+
.table>tbody>tr>th.danger,
|
3007 |
+
.table>tfoot>tr>th.danger,
|
3008 |
+
.table>thead>tr.danger>td,
|
3009 |
+
.table>tbody>tr.danger>td,
|
3010 |
+
.table>tfoot>tr.danger>td,
|
3011 |
+
.table>thead>tr.danger>th,
|
3012 |
+
.table>tbody>tr.danger>th,
|
3013 |
+
.table>tfoot>tr.danger>th {
|
3014 |
+
background-color: #e74c3c
|
3015 |
+
}
|
3016 |
+
|
3017 |
+
.table-hover>tbody>tr>td.danger:hover,
|
3018 |
+
.table-hover>tbody>tr>th.danger:hover,
|
3019 |
+
.table-hover>tbody>tr.danger:hover>td,
|
3020 |
+
.table-hover>tbody>tr:hover>.danger,
|
3021 |
+
.table-hover>tbody>tr.danger:hover>th {
|
3022 |
+
background-color: #e43725
|
3023 |
+
}
|
3024 |
+
|
3025 |
+
.table-responsive {
|
3026 |
+
overflow-x: auto;
|
3027 |
+
min-height: 0.01%
|
3028 |
+
}
|
3029 |
+
|
3030 |
+
@media screen and (max-width: 767px) {
|
3031 |
+
.table-responsive {
|
3032 |
+
width: 100%;
|
3033 |
+
margin-bottom: 15.75px;
|
3034 |
+
overflow-y: hidden;
|
3035 |
+
-ms-overflow-style: -ms-autohiding-scrollbar;
|
3036 |
+
border: 1px solid #ecf0f1
|
3037 |
+
}
|
3038 |
+
.table-responsive>.table {
|
3039 |
+
margin-bottom: 0
|
3040 |
+
}
|
3041 |
+
.table-responsive>.table>thead>tr>th,
|
3042 |
+
.table-responsive>.table>tbody>tr>th,
|
3043 |
+
.table-responsive>.table>tfoot>tr>th,
|
3044 |
+
.table-responsive>.table>thead>tr>td,
|
3045 |
+
.table-responsive>.table>tbody>tr>td,
|
3046 |
+
.table-responsive>.table>tfoot>tr>td {
|
3047 |
+
white-space: nowrap
|
3048 |
+
}
|
3049 |
+
.table-responsive>.table-bordered {
|
3050 |
+
border: 0
|
3051 |
+
}
|
3052 |
+
.table-responsive>.table-bordered>thead>tr>th:first-child,
|
3053 |
+
.table-responsive>.table-bordered>tbody>tr>th:first-child,
|
3054 |
+
.table-responsive>.table-bordered>tfoot>tr>th:first-child,
|
3055 |
+
.table-responsive>.table-bordered>thead>tr>td:first-child,
|
3056 |
+
.table-responsive>.table-bordered>tbody>tr>td:first-child,
|
3057 |
+
.table-responsive>.table-bordered>tfoot>tr>td:first-child {
|
3058 |
+
border-left: 0
|
3059 |
+
}
|
3060 |
+
.table-responsive>.table-bordered>thead>tr>th:last-child,
|
3061 |
+
.table-responsive>.table-bordered>tbody>tr>th:last-child,
|
3062 |
+
.table-responsive>.table-bordered>tfoot>tr>th:last-child,
|
3063 |
+
.table-responsive>.table-bordered>thead>tr>td:last-child,
|
3064 |
+
.table-responsive>.table-bordered>tbody>tr>td:last-child,
|
3065 |
+
.table-responsive>.table-bordered>tfoot>tr>td:last-child {
|
3066 |
+
border-right: 0
|
3067 |
+
}
|
3068 |
+
.table-responsive>.table-bordered>tbody>tr:last-child>th,
|
3069 |
+
.table-responsive>.table-bordered>tfoot>tr:last-child>th,
|
3070 |
+
.table-responsive>.table-bordered>tbody>tr:last-child>td,
|
3071 |
+
.table-responsive>.table-bordered>tfoot>tr:last-child>td {
|
3072 |
+
border-bottom: 0
|
3073 |
+
}
|
3074 |
+
}
|
3075 |
+
|
3076 |
+
fieldset {
|
3077 |
+
padding: 0;
|
3078 |
+
margin: 0;
|
3079 |
+
border: 0;
|
3080 |
+
min-width: 0
|
3081 |
+
}
|
3082 |
+
|
3083 |
+
legend {
|
3084 |
+
display: block;
|
3085 |
+
width: 100%;
|
3086 |
+
padding: 0;
|
3087 |
+
margin-bottom: 21px;
|
3088 |
+
font-size: 22.5px;
|
3089 |
+
line-height: inherit;
|
3090 |
+
color: #2c3e50;
|
3091 |
+
border: 0;
|
3092 |
+
border-bottom: 1px solid transparent
|
3093 |
+
}
|
3094 |
+
|
3095 |
+
label {
|
3096 |
+
display: inline-block;
|
3097 |
+
max-width: 100%;
|
3098 |
+
margin-bottom: 5px;
|
3099 |
+
font-weight: bold
|
3100 |
+
}
|
3101 |
+
|
3102 |
+
input[type="search"] {
|
3103 |
+
-webkit-box-sizing: border-box;
|
3104 |
+
-moz-box-sizing: border-box;
|
3105 |
+
box-sizing: border-box
|
3106 |
+
}
|
3107 |
+
|
3108 |
+
input[type="radio"],
|
3109 |
+
input[type="checkbox"] {
|
3110 |
+
margin: 4px 0 0;
|
3111 |
+
margin-top: 1px \9;
|
3112 |
+
line-height: normal
|
3113 |
+
}
|
3114 |
+
|
3115 |
+
input[type="file"] {
|
3116 |
+
display: block
|
3117 |
+
}
|
3118 |
+
|
3119 |
+
input[type="range"] {
|
3120 |
+
display: block;
|
3121 |
+
width: 100%
|
3122 |
+
}
|
3123 |
+
|
3124 |
+
select[multiple],
|
3125 |
+
select[size] {
|
3126 |
+
height: auto
|
3127 |
+
}
|
3128 |
+
|
3129 |
+
input[type="file"]:focus,
|
3130 |
+
input[type="radio"]:focus,
|
3131 |
+
input[type="checkbox"]:focus {
|
3132 |
+
outline: thin dotted;
|
3133 |
+
outline: 5px auto -webkit-focus-ring-color;
|
3134 |
+
outline-offset: -2px
|
3135 |
+
}
|
3136 |
+
|
3137 |
+
output {
|
3138 |
+
display: block;
|
3139 |
+
padding-top: 11px;
|
3140 |
+
font-size: 15px;
|
3141 |
+
line-height: 1.42857143;
|
3142 |
+
color: #2c3e50
|
3143 |
+
}
|
3144 |
+
|
3145 |
+
.form-control {
|
3146 |
+
display: block;
|
3147 |
+
width: 100%;
|
3148 |
+
height: 32px;
|
3149 |
+
padding: 10px 15px;
|
3150 |
+
font-size: 15px;
|
3151 |
+
line-height: 1.42857143;
|
3152 |
+
color: #2c3e50;
|
3153 |
+
background-color: #ffffff;
|
3154 |
+
background-image: none;
|
3155 |
+
border: 1px solid #dce4ec;
|
3156 |
+
border-radius: 4px;
|
3157 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
3158 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
3159 |
+
-webkit-transition: border-color ease-in-out .15s, -webkit-box-shadow ease-in-out .15s;
|
3160 |
+
-o-transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s;
|
3161 |
+
transition: border-color ease-in-out .15s, box-shadow ease-in-out .15s
|
3162 |
+
}
|
3163 |
+
|
3164 |
+
.form-control:focus {
|
3165 |
+
border-color: #2c3e50;
|
3166 |
+
outline: 0;
|
3167 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(44, 62, 80, 0.6);
|
3168 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 8px rgba(44, 62, 80, 0.6)
|
3169 |
+
}
|
3170 |
+
|
3171 |
+
.form-control::-moz-placeholder {
|
3172 |
+
color: #acb6c0;
|
3173 |
+
opacity: 1
|
3174 |
+
}
|
3175 |
+
|
3176 |
+
.form-control:-ms-input-placeholder {
|
3177 |
+
color: #acb6c0
|
3178 |
+
}
|
3179 |
+
|
3180 |
+
.form-control::-webkit-input-placeholder {
|
3181 |
+
color: #acb6c0
|
3182 |
+
}
|
3183 |
+
|
3184 |
+
.form-control[disabled],
|
3185 |
+
.form-control[readonly],
|
3186 |
+
fieldset[disabled] .form-control {
|
3187 |
+
background-color: #ecf0f1;
|
3188 |
+
opacity: 1
|
3189 |
+
}
|
3190 |
+
|
3191 |
+
.form-control[disabled],
|
3192 |
+
fieldset[disabled] .form-control {
|
3193 |
+
cursor: not-allowed
|
3194 |
+
}
|
3195 |
+
|
3196 |
+
textarea.form-control {
|
3197 |
+
height: auto
|
3198 |
+
}
|
3199 |
+
|
3200 |
+
input[type="search"] {
|
3201 |
+
-webkit-appearance: none
|
3202 |
+
}
|
3203 |
+
|
3204 |
+
@media screen and (-webkit-min-device-pixel-ratio: 0) {
|
3205 |
+
input[type="date"].form-control,
|
3206 |
+
input[type="time"].form-control,
|
3207 |
+
input[type="datetime-local"].form-control,
|
3208 |
+
input[type="month"].form-control {
|
3209 |
+
line-height: 45px
|
3210 |
+
}
|
3211 |
+
input[type="date"].input-sm,
|
3212 |
+
input[type="time"].input-sm,
|
3213 |
+
input[type="datetime-local"].input-sm,
|
3214 |
+
input[type="month"].input-sm,
|
3215 |
+
.input-group-sm input[type="date"],
|
3216 |
+
.input-group-sm input[type="time"],
|
3217 |
+
.input-group-sm input[type="datetime-local"],
|
3218 |
+
.input-group-sm input[type="month"] {
|
3219 |
+
line-height: 35px
|
3220 |
+
}
|
3221 |
+
input[type="date"].input-lg,
|
3222 |
+
input[type="time"].input-lg,
|
3223 |
+
input[type="datetime-local"].input-lg,
|
3224 |
+
input[type="month"].input-lg,
|
3225 |
+
.input-group-lg input[type="date"],
|
3226 |
+
.input-group-lg input[type="time"],
|
3227 |
+
.input-group-lg input[type="datetime-local"],
|
3228 |
+
.input-group-lg input[type="month"] {
|
3229 |
+
line-height: 66px
|
3230 |
+
}
|
3231 |
+
}
|
3232 |
+
|
3233 |
+
.form-group {
|
3234 |
+
margin-bottom: 15px
|
3235 |
+
}
|
3236 |
+
|
3237 |
+
.radio,
|
3238 |
+
.checkbox {
|
3239 |
+
position: relative;
|
3240 |
+
display: block;
|
3241 |
+
margin-top: 10px;
|
3242 |
+
margin-bottom: 10px
|
3243 |
+
}
|
3244 |
+
|
3245 |
+
.radio label,
|
3246 |
+
.checkbox label {
|
3247 |
+
min-height: 21px;
|
3248 |
+
padding-left: 20px;
|
3249 |
+
margin-bottom: 0;
|
3250 |
+
font-weight: normal;
|
3251 |
+
cursor: pointer
|
3252 |
+
}
|
3253 |
+
|
3254 |
+
.radio input[type="radio"],
|
3255 |
+
.radio-inline input[type="radio"],
|
3256 |
+
.checkbox input[type="checkbox"],
|
3257 |
+
.checkbox-inline input[type="checkbox"] {
|
3258 |
+
position: absolute;
|
3259 |
+
margin-left: -20px;
|
3260 |
+
margin-top: 4px \9
|
3261 |
+
}
|
3262 |
+
|
3263 |
+
.radio+.radio,
|
3264 |
+
.checkbox+.checkbox {
|
3265 |
+
margin-top: -5px
|
3266 |
+
}
|
3267 |
+
|
3268 |
+
.radio-inline,
|
3269 |
+
.checkbox-inline {
|
3270 |
+
position: relative;
|
3271 |
+
display: inline-block;
|
3272 |
+
padding-left: 20px;
|
3273 |
+
margin-bottom: 0;
|
3274 |
+
vertical-align: middle;
|
3275 |
+
font-weight: normal;
|
3276 |
+
cursor: pointer
|
3277 |
+
}
|
3278 |
+
|
3279 |
+
.radio-inline+.radio-inline,
|
3280 |
+
.checkbox-inline+.checkbox-inline {
|
3281 |
+
margin-top: 0;
|
3282 |
+
margin-left: 10px
|
3283 |
+
}
|
3284 |
+
|
3285 |
+
input[type="radio"][disabled],
|
3286 |
+
input[type="checkbox"][disabled],
|
3287 |
+
input[type="radio"].disabled,
|
3288 |
+
input[type="checkbox"].disabled,
|
3289 |
+
fieldset[disabled] input[type="radio"],
|
3290 |
+
fieldset[disabled] input[type="checkbox"] {
|
3291 |
+
cursor: not-allowed
|
3292 |
+
}
|
3293 |
+
|
3294 |
+
.radio-inline.disabled,
|
3295 |
+
.checkbox-inline.disabled,
|
3296 |
+
fieldset[disabled] .radio-inline,
|
3297 |
+
fieldset[disabled] .checkbox-inline {
|
3298 |
+
cursor: not-allowed
|
3299 |
+
}
|
3300 |
+
|
3301 |
+
.radio.disabled label,
|
3302 |
+
.checkbox.disabled label,
|
3303 |
+
fieldset[disabled] .radio label,
|
3304 |
+
fieldset[disabled] .checkbox label {
|
3305 |
+
cursor: not-allowed
|
3306 |
+
}
|
3307 |
+
|
3308 |
+
.form-control-static {
|
3309 |
+
padding-top: 11px;
|
3310 |
+
padding-bottom: 11px;
|
3311 |
+
margin-bottom: 0;
|
3312 |
+
min-height: 36px
|
3313 |
+
}
|
3314 |
+
|
3315 |
+
.form-control-static.input-lg,
|
3316 |
+
.form-control-static.input-sm {
|
3317 |
+
padding-left: 0;
|
3318 |
+
padding-right: 0
|
3319 |
+
}
|
3320 |
+
|
3321 |
+
.input-sm {
|
3322 |
+
height: 35px;
|
3323 |
+
padding: 6px 9px;
|
3324 |
+
font-size: 13px;
|
3325 |
+
line-height: 1.5;
|
3326 |
+
border-radius: 3px
|
3327 |
+
}
|
3328 |
+
|
3329 |
+
select.input-sm {
|
3330 |
+
height: 35px;
|
3331 |
+
line-height: 35px
|
3332 |
+
}
|
3333 |
+
|
3334 |
+
textarea.input-sm,
|
3335 |
+
select[multiple].input-sm {
|
3336 |
+
height: auto
|
3337 |
+
}
|
3338 |
+
|
3339 |
+
.form-group-sm .form-control {
|
3340 |
+
height: 35px;
|
3341 |
+
padding: 6px 9px;
|
3342 |
+
font-size: 13px;
|
3343 |
+
line-height: 1.5;
|
3344 |
+
border-radius: 3px
|
3345 |
+
}
|
3346 |
+
|
3347 |
+
.form-group-sm select.form-control {
|
3348 |
+
height: 35px;
|
3349 |
+
line-height: 35px
|
3350 |
+
}
|
3351 |
+
|
3352 |
+
.form-group-sm textarea.form-control,
|
3353 |
+
.form-group-sm select[multiple].form-control {
|
3354 |
+
height: auto
|
3355 |
+
}
|
3356 |
+
|
3357 |
+
.form-group-sm .form-control-static {
|
3358 |
+
height: 35px;
|
3359 |
+
min-height: 34px;
|
3360 |
+
padding: 7px 9px;
|
3361 |
+
font-size: 13px;
|
3362 |
+
line-height: 1.5
|
3363 |
+
}
|
3364 |
+
|
3365 |
+
.input-lg {
|
3366 |
+
height: 66px;
|
3367 |
+
padding: 18px 27px;
|
3368 |
+
font-size: 19px;
|
3369 |
+
line-height: 1.3333333;
|
3370 |
+
border-radius: 6px
|
3371 |
+
}
|
3372 |
+
|
3373 |
+
select.input-lg {
|
3374 |
+
height: 66px;
|
3375 |
+
line-height: 66px
|
3376 |
+
}
|
3377 |
+
|
3378 |
+
textarea.input-lg,
|
3379 |
+
select[multiple].input-lg {
|
3380 |
+
height: auto
|
3381 |
+
}
|
3382 |
+
|
3383 |
+
.form-group-lg .form-control {
|
3384 |
+
height: 66px;
|
3385 |
+
padding: 18px 27px;
|
3386 |
+
font-size: 19px;
|
3387 |
+
line-height: 1.3333333;
|
3388 |
+
border-radius: 6px
|
3389 |
+
}
|
3390 |
+
|
3391 |
+
.form-group-lg select.form-control {
|
3392 |
+
height: 66px;
|
3393 |
+
line-height: 66px
|
3394 |
+
}
|
3395 |
+
|
3396 |
+
.form-group-lg textarea.form-control,
|
3397 |
+
.form-group-lg select[multiple].form-control {
|
3398 |
+
height: auto
|
3399 |
+
}
|
3400 |
+
|
3401 |
+
.form-group-lg .form-control-static {
|
3402 |
+
height: 66px;
|
3403 |
+
min-height: 40px;
|
3404 |
+
padding: 19px 27px;
|
3405 |
+
font-size: 19px;
|
3406 |
+
line-height: 1.3333333
|
3407 |
+
}
|
3408 |
+
|
3409 |
+
.has-feedback {
|
3410 |
+
position: relative
|
3411 |
+
}
|
3412 |
+
|
3413 |
+
.has-feedback .form-control {
|
3414 |
+
padding-right: 56.25px
|
3415 |
+
}
|
3416 |
+
|
3417 |
+
.form-control-feedback {
|
3418 |
+
position: absolute;
|
3419 |
+
top: 0;
|
3420 |
+
right: 0;
|
3421 |
+
z-index: 2;
|
3422 |
+
display: block;
|
3423 |
+
width: 45px;
|
3424 |
+
height: 45px;
|
3425 |
+
line-height: 45px;
|
3426 |
+
text-align: center;
|
3427 |
+
pointer-events: none
|
3428 |
+
}
|
3429 |
+
|
3430 |
+
.input-lg+.form-control-feedback,
|
3431 |
+
.input-group-lg+.form-control-feedback,
|
3432 |
+
.form-group-lg .form-control+.form-control-feedback {
|
3433 |
+
width: 66px;
|
3434 |
+
height: 66px;
|
3435 |
+
line-height: 66px
|
3436 |
+
}
|
3437 |
+
|
3438 |
+
.input-sm+.form-control-feedback,
|
3439 |
+
.input-group-sm+.form-control-feedback,
|
3440 |
+
.form-group-sm .form-control+.form-control-feedback {
|
3441 |
+
width: 35px;
|
3442 |
+
height: 35px;
|
3443 |
+
line-height: 35px
|
3444 |
+
}
|
3445 |
+
|
3446 |
+
.has-success .help-block,
|
3447 |
+
.has-success .control-label,
|
3448 |
+
.has-success .radio,
|
3449 |
+
.has-success .checkbox,
|
3450 |
+
.has-success .radio-inline,
|
3451 |
+
.has-success .checkbox-inline,
|
3452 |
+
.has-success.radio label,
|
3453 |
+
.has-success.checkbox label,
|
3454 |
+
.has-success.radio-inline label,
|
3455 |
+
.has-success.checkbox-inline label {
|
3456 |
+
color: #ffffff
|
3457 |
+
}
|
3458 |
+
|
3459 |
+
.has-success .form-control {
|
3460 |
+
border-color: #ffffff;
|
3461 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
3462 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075)
|
3463 |
+
}
|
3464 |
+
|
3465 |
+
.has-success .form-control:focus {
|
3466 |
+
border-color: #e6e6e6;
|
3467 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #fff;
|
3468 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #fff
|
3469 |
+
}
|
3470 |
+
|
3471 |
+
.has-success .input-group-addon {
|
3472 |
+
color: #ffffff;
|
3473 |
+
border-color: #ffffff;
|
3474 |
+
background-color: #18bc9c
|
3475 |
+
}
|
3476 |
+
|
3477 |
+
.has-success .form-control-feedback {
|
3478 |
+
color: #ffffff
|
3479 |
+
}
|
3480 |
+
|
3481 |
+
.has-warning .help-block,
|
3482 |
+
.has-warning .control-label,
|
3483 |
+
.has-warning .radio,
|
3484 |
+
.has-warning .checkbox,
|
3485 |
+
.has-warning .radio-inline,
|
3486 |
+
.has-warning .checkbox-inline,
|
3487 |
+
.has-warning.radio label,
|
3488 |
+
.has-warning.checkbox label,
|
3489 |
+
.has-warning.radio-inline label,
|
3490 |
+
.has-warning.checkbox-inline label {
|
3491 |
+
color: #ffffff
|
3492 |
+
}
|
3493 |
+
|
3494 |
+
.has-warning .form-control {
|
3495 |
+
border-color: #ffffff;
|
3496 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
3497 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075)
|
3498 |
+
}
|
3499 |
+
|
3500 |
+
.has-warning .form-control:focus {
|
3501 |
+
border-color: #e6e6e6;
|
3502 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #fff;
|
3503 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #fff
|
3504 |
+
}
|
3505 |
+
|
3506 |
+
.has-warning .input-group-addon {
|
3507 |
+
color: #ffffff;
|
3508 |
+
border-color: #ffffff;
|
3509 |
+
background-color: #f39c12
|
3510 |
+
}
|
3511 |
+
|
3512 |
+
.has-warning .form-control-feedback {
|
3513 |
+
color: #ffffff
|
3514 |
+
}
|
3515 |
+
|
3516 |
+
.has-error .help-block,
|
3517 |
+
.has-error .control-label,
|
3518 |
+
.has-error .radio,
|
3519 |
+
.has-error .checkbox,
|
3520 |
+
.has-error .radio-inline,
|
3521 |
+
.has-error .checkbox-inline,
|
3522 |
+
.has-error.radio label,
|
3523 |
+
.has-error.checkbox label,
|
3524 |
+
.has-error.radio-inline label,
|
3525 |
+
.has-error.checkbox-inline label {
|
3526 |
+
color: #ffffff
|
3527 |
+
}
|
3528 |
+
|
3529 |
+
.has-error .form-control {
|
3530 |
+
border-color: #ffffff;
|
3531 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075);
|
3532 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075)
|
3533 |
+
}
|
3534 |
+
|
3535 |
+
.has-error .form-control:focus {
|
3536 |
+
border-color: #e6e6e6;
|
3537 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #fff;
|
3538 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #fff
|
3539 |
+
}
|
3540 |
+
|
3541 |
+
.has-error .input-group-addon {
|
3542 |
+
color: #ffffff;
|
3543 |
+
border-color: #ffffff;
|
3544 |
+
background-color: #e74c3c
|
3545 |
+
}
|
3546 |
+
|
3547 |
+
.has-error .form-control-feedback {
|
3548 |
+
color: #ffffff
|
3549 |
+
}
|
3550 |
+
|
3551 |
+
.has-feedback label~.form-control-feedback {
|
3552 |
+
top: 26px
|
3553 |
+
}
|
3554 |
+
|
3555 |
+
.has-feedback label.sr-only~.form-control-feedback {
|
3556 |
+
top: 0
|
3557 |
+
}
|
3558 |
+
|
3559 |
+
.help-block {
|
3560 |
+
display: block;
|
3561 |
+
margin-top: 5px;
|
3562 |
+
margin-bottom: 10px;
|
3563 |
+
color: #597ea2
|
3564 |
+
}
|
3565 |
+
|
3566 |
+
@media (min-width: 768px) {
|
3567 |
+
.form-inline .form-group {
|
3568 |
+
display: inline-block;
|
3569 |
+
margin-bottom: 0;
|
3570 |
+
vertical-align: middle
|
3571 |
+
}
|
3572 |
+
.form-inline .form-control {
|
3573 |
+
display: inline-block;
|
3574 |
+
width: auto;
|
3575 |
+
vertical-align: middle
|
3576 |
+
}
|
3577 |
+
.form-inline .form-control-static {
|
3578 |
+
display: inline-block
|
3579 |
+
}
|
3580 |
+
.form-inline .input-group {
|
3581 |
+
display: inline-table;
|
3582 |
+
vertical-align: middle
|
3583 |
+
}
|
3584 |
+
.form-inline .input-group .input-group-addon,
|
3585 |
+
.form-inline .input-group .input-group-btn,
|
3586 |
+
.form-inline .input-group .form-control {
|
3587 |
+
width: auto
|
3588 |
+
}
|
3589 |
+
.form-inline .input-group>.form-control {
|
3590 |
+
width: 100%
|
3591 |
+
}
|
3592 |
+
.form-inline .control-label {
|
3593 |
+
margin-bottom: 0;
|
3594 |
+
vertical-align: middle
|
3595 |
+
}
|
3596 |
+
.form-inline .radio,
|
3597 |
+
.form-inline .checkbox {
|
3598 |
+
display: inline-block;
|
3599 |
+
margin-top: 0;
|
3600 |
+
margin-bottom: 0;
|
3601 |
+
vertical-align: middle
|
3602 |
+
}
|
3603 |
+
.form-inline .radio label,
|
3604 |
+
.form-inline .checkbox label {
|
3605 |
+
padding-left: 0
|
3606 |
+
}
|
3607 |
+
.form-inline .radio input[type="radio"],
|
3608 |
+
.form-inline .checkbox input[type="checkbox"] {
|
3609 |
+
position: relative;
|
3610 |
+
margin-left: 0
|
3611 |
+
}
|
3612 |
+
.form-inline .has-feedback .form-control-feedback {
|
3613 |
+
top: 0
|
3614 |
+
}
|
3615 |
+
}
|
3616 |
+
|
3617 |
+
.form-horizontal .radio,
|
3618 |
+
.form-horizontal .checkbox,
|
3619 |
+
.form-horizontal .radio-inline,
|
3620 |
+
.form-horizontal .checkbox-inline {
|
3621 |
+
margin-top: 0;
|
3622 |
+
margin-bottom: 0;
|
3623 |
+
padding-top: 11px
|
3624 |
+
}
|
3625 |
+
|
3626 |
+
.form-horizontal .radio,
|
3627 |
+
.form-horizontal .checkbox {
|
3628 |
+
min-height: 32px
|
3629 |
+
}
|
3630 |
+
|
3631 |
+
@media (min-width: 768px) {
|
3632 |
+
.form-horizontal .control-label {
|
3633 |
+
text-align: right;
|
3634 |
+
margin-bottom: 0;
|
3635 |
+
padding-top: 11px
|
3636 |
+
}
|
3637 |
+
}
|
3638 |
+
|
3639 |
+
.form-horizontal .has-feedback .form-control-feedback {
|
3640 |
+
right: 15px
|
3641 |
+
}
|
3642 |
+
|
3643 |
+
@media (min-width: 768px) {
|
3644 |
+
.form-horizontal .form-group-lg .control-label {
|
3645 |
+
padding-top: 24.9999994px;
|
3646 |
+
font-size: 19px
|
3647 |
+
}
|
3648 |
+
}
|
3649 |
+
|
3650 |
+
@media (min-width: 768px) {
|
3651 |
+
.form-horizontal .form-group-sm .control-label {
|
3652 |
+
padding-top: 7px;
|
3653 |
+
font-size: 13px
|
3654 |
+
}
|
3655 |
+
}
|
3656 |
+
|
3657 |
+
.btn {
|
3658 |
+
display: inline-block;
|
3659 |
+
margin-bottom: 0;
|
3660 |
+
font-weight: normal;
|
3661 |
+
text-align: center;
|
3662 |
+
vertical-align: middle;
|
3663 |
+
-ms-touch-action: manipulation;
|
3664 |
+
touch-action: manipulation;
|
3665 |
+
cursor: pointer;
|
3666 |
+
background-image: none;
|
3667 |
+
border: 1px solid transparent;
|
3668 |
+
white-space: nowrap;
|
3669 |
+
padding: 10px 15px;
|
3670 |
+
font-size: 15px;
|
3671 |
+
line-height: 1.42857143;
|
3672 |
+
border-radius: 4px;
|
3673 |
+
-webkit-user-select: none;
|
3674 |
+
-moz-user-select: none;
|
3675 |
+
-ms-user-select: none;
|
3676 |
+
user-select: none
|
3677 |
+
}
|
3678 |
+
|
3679 |
+
.btn:focus,
|
3680 |
+
.btn:active:focus,
|
3681 |
+
.btn.active:focus,
|
3682 |
+
.btn.focus,
|
3683 |
+
.btn:active.focus,
|
3684 |
+
.btn.active.focus {
|
3685 |
+
outline: thin dotted;
|
3686 |
+
outline: 5px auto -webkit-focus-ring-color;
|
3687 |
+
outline-offset: -2px
|
3688 |
+
}
|
3689 |
+
|
3690 |
+
.btn:hover,
|
3691 |
+
.btn:focus,
|
3692 |
+
.btn.focus {
|
3693 |
+
color: #ffffff;
|
3694 |
+
text-decoration: none
|
3695 |
+
}
|
3696 |
+
|
3697 |
+
.btn:active,
|
3698 |
+
.btn.active {
|
3699 |
+
outline: 0;
|
3700 |
+
background-image: none;
|
3701 |
+
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
3702 |
+
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125)
|
3703 |
+
}
|
3704 |
+
|
3705 |
+
.btn.disabled,
|
3706 |
+
.btn[disabled],
|
3707 |
+
fieldset[disabled] .btn {
|
3708 |
+
cursor: not-allowed;
|
3709 |
+
opacity: 0.65;
|
3710 |
+
filter: alpha(opacity=65);
|
3711 |
+
-webkit-box-shadow: none;
|
3712 |
+
box-shadow: none
|
3713 |
+
}
|
3714 |
+
|
3715 |
+
a.btn.disabled,
|
3716 |
+
fieldset[disabled] a.btn {
|
3717 |
+
pointer-events: none
|
3718 |
+
}
|
3719 |
+
|
3720 |
+
.btn-default {
|
3721 |
+
color: #ffffff;
|
3722 |
+
background-color: #95a5a6;
|
3723 |
+
border-color: #95a5a6
|
3724 |
+
}
|
3725 |
+
|
3726 |
+
.btn-default:focus,
|
3727 |
+
.btn-default.focus {
|
3728 |
+
color: #ffffff;
|
3729 |
+
background-color: #798d8f;
|
3730 |
+
border-color: #566566
|
3731 |
+
}
|
3732 |
+
|
3733 |
+
.btn-default:hover {
|
3734 |
+
color: #ffffff;
|
3735 |
+
background-color: #798d8f;
|
3736 |
+
border-color: #74898a
|
3737 |
+
}
|
3738 |
+
|
3739 |
+
.btn-default:active,
|
3740 |
+
.btn-default.active,
|
3741 |
+
.open>.dropdown-toggle.btn-default {
|
3742 |
+
color: #ffffff;
|
3743 |
+
background-color: #798d8f;
|
3744 |
+
border-color: #74898a
|
3745 |
+
}
|
3746 |
+
|
3747 |
+
.btn-default:active:hover,
|
3748 |
+
.btn-default.active:hover,
|
3749 |
+
.open>.dropdown-toggle.btn-default:hover,
|
3750 |
+
.btn-default:active:focus,
|
3751 |
+
.btn-default.active:focus,
|
3752 |
+
.open>.dropdown-toggle.btn-default:focus,
|
3753 |
+
.btn-default:active.focus,
|
3754 |
+
.btn-default.active.focus,
|
3755 |
+
.open>.dropdown-toggle.btn-default.focus {
|
3756 |
+
color: #ffffff;
|
3757 |
+
background-color: #687b7c;
|
3758 |
+
border-color: #566566
|
3759 |
+
}
|
3760 |
+
|
3761 |
+
.btn-default:active,
|
3762 |
+
.btn-default.active,
|
3763 |
+
.open>.dropdown-toggle.btn-default {
|
3764 |
+
background-image: none
|
3765 |
+
}
|
3766 |
+
|
3767 |
+
.btn-default.disabled,
|
3768 |
+
.btn-default[disabled],
|
3769 |
+
fieldset[disabled] .btn-default,
|
3770 |
+
.btn-default.disabled:hover,
|
3771 |
+
.btn-default[disabled]:hover,
|
3772 |
+
fieldset[disabled] .btn-default:hover,
|
3773 |
+
.btn-default.disabled:focus,
|
3774 |
+
.btn-default[disabled]:focus,
|
3775 |
+
fieldset[disabled] .btn-default:focus,
|
3776 |
+
.btn-default.disabled.focus,
|
3777 |
+
.btn-default[disabled].focus,
|
3778 |
+
fieldset[disabled] .btn-default.focus,
|
3779 |
+
.btn-default.disabled:active,
|
3780 |
+
.btn-default[disabled]:active,
|
3781 |
+
fieldset[disabled] .btn-default:active,
|
3782 |
+
.btn-default.disabled.active,
|
3783 |
+
.btn-default[disabled].active,
|
3784 |
+
fieldset[disabled] .btn-default.active {
|
3785 |
+
background-color: #95a5a6;
|
3786 |
+
border-color: #95a5a6
|
3787 |
+
}
|
3788 |
+
|
3789 |
+
.btn-default .badge {
|
3790 |
+
color: #95a5a6;
|
3791 |
+
background-color: #ffffff
|
3792 |
+
}
|
3793 |
+
|
3794 |
+
.btn-primary {
|
3795 |
+
color: #ffffff;
|
3796 |
+
background-color: #3498DB;
|
3797 |
+
border-color: #3498DB
|
3798 |
+
}
|
3799 |
+
|
3800 |
+
.btn-primary:focus,
|
3801 |
+
.btn-primary.focus {
|
3802 |
+
color: #ffffff;
|
3803 |
+
background-color: #1a242f;
|
3804 |
+
border-color: #000000
|
3805 |
+
}
|
3806 |
+
|
3807 |
+
.btn-primary:hover {
|
3808 |
+
color: #ffffff;
|
3809 |
+
background-color: #1a242f;
|
3810 |
+
border-color: #161f29
|
3811 |
+
}
|
3812 |
+
|
3813 |
+
.btn-primary:active,
|
3814 |
+
.btn-primary.active,
|
3815 |
+
.open>.dropdown-toggle.btn-primary {
|
3816 |
+
color: #ffffff;
|
3817 |
+
background-color: #1a242f;
|
3818 |
+
border-color: #161f29
|
3819 |
+
}
|
3820 |
+
|
3821 |
+
.btn-primary:active:hover,
|
3822 |
+
.btn-primary.active:hover,
|
3823 |
+
.open>.dropdown-toggle.btn-primary:hover,
|
3824 |
+
.btn-primary:active:focus,
|
3825 |
+
.btn-primary.active:focus,
|
3826 |
+
.open>.dropdown-toggle.btn-primary:focus,
|
3827 |
+
.btn-primary:active.focus,
|
3828 |
+
.btn-primary.active.focus,
|
3829 |
+
.open>.dropdown-toggle.btn-primary.focus {
|
3830 |
+
color: #ffffff;
|
3831 |
+
background-color: #0d1318;
|
3832 |
+
border-color: #000000
|
3833 |
+
}
|
3834 |
+
|
3835 |
+
.btn-primary:active,
|
3836 |
+
.btn-primary.active,
|
3837 |
+
.open>.dropdown-toggle.btn-primary {
|
3838 |
+
background-image: none
|
3839 |
+
}
|
3840 |
+
|
3841 |
+
.btn-primary.disabled,
|
3842 |
+
.btn-primary[disabled],
|
3843 |
+
fieldset[disabled] .btn-primary,
|
3844 |
+
.btn-primary.disabled:hover,
|
3845 |
+
.btn-primary[disabled]:hover,
|
3846 |
+
fieldset[disabled] .btn-primary:hover,
|
3847 |
+
.btn-primary.disabled:focus,
|
3848 |
+
.btn-primary[disabled]:focus,
|
3849 |
+
fieldset[disabled] .btn-primary:focus,
|
3850 |
+
.btn-primary.disabled.focus,
|
3851 |
+
.btn-primary[disabled].focus,
|
3852 |
+
fieldset[disabled] .btn-primary.focus,
|
3853 |
+
.btn-primary.disabled:active,
|
3854 |
+
.btn-primary[disabled]:active,
|
3855 |
+
fieldset[disabled] .btn-primary:active,
|
3856 |
+
.btn-primary.disabled.active,
|
3857 |
+
.btn-primary[disabled].active,
|
3858 |
+
fieldset[disabled] .btn-primary.active {
|
3859 |
+
background-color: #2c3e50;
|
3860 |
+
border-color: #2c3e50
|
3861 |
+
}
|
3862 |
+
|
3863 |
+
.btn-primary .badge {
|
3864 |
+
color: #2c3e50;
|
3865 |
+
background-color: #ffffff
|
3866 |
+
}
|
3867 |
+
|
3868 |
+
.btn-success {
|
3869 |
+
color: #ffffff;
|
3870 |
+
background-color: #18bc9c;
|
3871 |
+
border-color: #18bc9c
|
3872 |
+
}
|
3873 |
+
|
3874 |
+
.btn-success:focus,
|
3875 |
+
.btn-success.focus {
|
3876 |
+
color: #ffffff;
|
3877 |
+
background-color: #128f76;
|
3878 |
+
border-color: #0a4b3e
|
3879 |
+
}
|
3880 |
+
|
3881 |
+
.btn-success:hover {
|
3882 |
+
color: #ffffff;
|
3883 |
+
background-color: #128f76;
|
3884 |
+
border-color: #11866f
|
3885 |
+
}
|
3886 |
+
|
3887 |
+
.btn-success:active,
|
3888 |
+
.btn-success.active,
|
3889 |
+
.open>.dropdown-toggle.btn-success {
|
3890 |
+
color: #ffffff;
|
3891 |
+
background-color: #128f76;
|
3892 |
+
border-color: #11866f
|
3893 |
+
}
|
3894 |
+
|
3895 |
+
.btn-success:active:hover,
|
3896 |
+
.btn-success.active:hover,
|
3897 |
+
.open>.dropdown-toggle.btn-success:hover,
|
3898 |
+
.btn-success:active:focus,
|
3899 |
+
.btn-success.active:focus,
|
3900 |
+
.open>.dropdown-toggle.btn-success:focus,
|
3901 |
+
.btn-success:active.focus,
|
3902 |
+
.btn-success.active.focus,
|
3903 |
+
.open>.dropdown-toggle.btn-success.focus {
|
3904 |
+
color: #ffffff;
|
3905 |
+
background-color: #0e6f5c;
|
3906 |
+
border-color: #0a4b3e
|
3907 |
+
}
|
3908 |
+
|
3909 |
+
.btn-success:active,
|
3910 |
+
.btn-success.active,
|
3911 |
+
.open>.dropdown-toggle.btn-success {
|
3912 |
+
background-image: none
|
3913 |
+
}
|
3914 |
+
|
3915 |
+
.btn-success.disabled,
|
3916 |
+
.btn-success[disabled],
|
3917 |
+
fieldset[disabled] .btn-success,
|
3918 |
+
.btn-success.disabled:hover,
|
3919 |
+
.btn-success[disabled]:hover,
|
3920 |
+
fieldset[disabled] .btn-success:hover,
|
3921 |
+
.btn-success.disabled:focus,
|
3922 |
+
.btn-success[disabled]:focus,
|
3923 |
+
fieldset[disabled] .btn-success:focus,
|
3924 |
+
.btn-success.disabled.focus,
|
3925 |
+
.btn-success[disabled].focus,
|
3926 |
+
fieldset[disabled] .btn-success.focus,
|
3927 |
+
.btn-success.disabled:active,
|
3928 |
+
.btn-success[disabled]:active,
|
3929 |
+
fieldset[disabled] .btn-success:active,
|
3930 |
+
.btn-success.disabled.active,
|
3931 |
+
.btn-success[disabled].active,
|
3932 |
+
fieldset[disabled] .btn-success.active {
|
3933 |
+
background-color: #18bc9c;
|
3934 |
+
border-color: #18bc9c
|
3935 |
+
}
|
3936 |
+
|
3937 |
+
.btn-success .badge {
|
3938 |
+
color: #18bc9c;
|
3939 |
+
background-color: #ffffff
|
3940 |
+
}
|
3941 |
+
|
3942 |
+
.btn-info {
|
3943 |
+
color: #ffffff;
|
3944 |
+
background-color: #3498db;
|
3945 |
+
border-color: #3498db
|
3946 |
+
}
|
3947 |
+
|
3948 |
+
.btn-info:focus,
|
3949 |
+
.btn-info.focus {
|
3950 |
+
color: #ffffff;
|
3951 |
+
background-color: #217dbb;
|
3952 |
+
border-color: #16527a
|
3953 |
+
}
|
3954 |
+
|
3955 |
+
.btn-info:hover {
|
3956 |
+
color: #ffffff;
|
3957 |
+
background-color: #217dbb;
|
3958 |
+
border-color: #2077b2
|
3959 |
+
}
|
3960 |
+
|
3961 |
+
.btn-info:active,
|
3962 |
+
.btn-info.active,
|
3963 |
+
.open>.dropdown-toggle.btn-info {
|
3964 |
+
color: #ffffff;
|
3965 |
+
background-color: #217dbb;
|
3966 |
+
border-color: #2077b2
|
3967 |
+
}
|
3968 |
+
|
3969 |
+
.btn-info:active:hover,
|
3970 |
+
.btn-info.active:hover,
|
3971 |
+
.open>.dropdown-toggle.btn-info:hover,
|
3972 |
+
.btn-info:active:focus,
|
3973 |
+
.btn-info.active:focus,
|
3974 |
+
.open>.dropdown-toggle.btn-info:focus,
|
3975 |
+
.btn-info:active.focus,
|
3976 |
+
.btn-info.active.focus,
|
3977 |
+
.open>.dropdown-toggle.btn-info.focus {
|
3978 |
+
color: #ffffff;
|
3979 |
+
background-color: #1c699d;
|
3980 |
+
border-color: #16527a
|
3981 |
+
}
|
3982 |
+
|
3983 |
+
.btn-info:active,
|
3984 |
+
.btn-info.active,
|
3985 |
+
.open>.dropdown-toggle.btn-info {
|
3986 |
+
background-image: none
|
3987 |
+
}
|
3988 |
+
|
3989 |
+
.btn-info.disabled,
|
3990 |
+
.btn-info[disabled],
|
3991 |
+
fieldset[disabled] .btn-info,
|
3992 |
+
.btn-info.disabled:hover,
|
3993 |
+
.btn-info[disabled]:hover,
|
3994 |
+
fieldset[disabled] .btn-info:hover,
|
3995 |
+
.btn-info.disabled:focus,
|
3996 |
+
.btn-info[disabled]:focus,
|
3997 |
+
fieldset[disabled] .btn-info:focus,
|
3998 |
+
.btn-info.disabled.focus,
|
3999 |
+
.btn-info[disabled].focus,
|
4000 |
+
fieldset[disabled] .btn-info.focus,
|
4001 |
+
.btn-info.disabled:active,
|
4002 |
+
.btn-info[disabled]:active,
|
4003 |
+
fieldset[disabled] .btn-info:active,
|
4004 |
+
.btn-info.disabled.active,
|
4005 |
+
.btn-info[disabled].active,
|
4006 |
+
fieldset[disabled] .btn-info.active {
|
4007 |
+
background-color: #3498db;
|
4008 |
+
border-color: #3498db
|
4009 |
+
}
|
4010 |
+
|
4011 |
+
.btn-info .badge {
|
4012 |
+
color: #3498db;
|
4013 |
+
background-color: #ffffff
|
4014 |
+
}
|
4015 |
+
|
4016 |
+
.btn-warning {
|
4017 |
+
color: #ffffff;
|
4018 |
+
background-color: #f39c12;
|
4019 |
+
border-color: #f39c12
|
4020 |
+
}
|
4021 |
+
|
4022 |
+
.btn-warning:focus,
|
4023 |
+
.btn-warning.focus {
|
4024 |
+
color: #ffffff;
|
4025 |
+
background-color: #c87f0a;
|
4026 |
+
border-color: #7f5006
|
4027 |
+
}
|
4028 |
+
|
4029 |
+
.btn-warning:hover {
|
4030 |
+
color: #ffffff;
|
4031 |
+
background-color: #c87f0a;
|
4032 |
+
border-color: #be780a
|
4033 |
+
}
|
4034 |
+
|
4035 |
+
.btn-warning:active,
|
4036 |
+
.btn-warning.active,
|
4037 |
+
.open>.dropdown-toggle.btn-warning {
|
4038 |
+
color: #ffffff;
|
4039 |
+
background-color: #c87f0a;
|
4040 |
+
border-color: #be780a
|
4041 |
+
}
|
4042 |
+
|
4043 |
+
.btn-warning:active:hover,
|
4044 |
+
.btn-warning.active:hover,
|
4045 |
+
.open>.dropdown-toggle.btn-warning:hover,
|
4046 |
+
.btn-warning:active:focus,
|
4047 |
+
.btn-warning.active:focus,
|
4048 |
+
.open>.dropdown-toggle.btn-warning:focus,
|
4049 |
+
.btn-warning:active.focus,
|
4050 |
+
.btn-warning.active.focus,
|
4051 |
+
.open>.dropdown-toggle.btn-warning.focus {
|
4052 |
+
color: #ffffff;
|
4053 |
+
background-color: #a66908;
|
4054 |
+
border-color: #7f5006
|
4055 |
+
}
|
4056 |
+
|
4057 |
+
.btn-warning:active,
|
4058 |
+
.btn-warning.active,
|
4059 |
+
.open>.dropdown-toggle.btn-warning {
|
4060 |
+
background-image: none
|
4061 |
+
}
|
4062 |
+
|
4063 |
+
.btn-warning.disabled,
|
4064 |
+
.btn-warning[disabled],
|
4065 |
+
fieldset[disabled] .btn-warning,
|
4066 |
+
.btn-warning.disabled:hover,
|
4067 |
+
.btn-warning[disabled]:hover,
|
4068 |
+
fieldset[disabled] .btn-warning:hover,
|
4069 |
+
.btn-warning.disabled:focus,
|
4070 |
+
.btn-warning[disabled]:focus,
|
4071 |
+
fieldset[disabled] .btn-warning:focus,
|
4072 |
+
.btn-warning.disabled.focus,
|
4073 |
+
.btn-warning[disabled].focus,
|
4074 |
+
fieldset[disabled] .btn-warning.focus,
|
4075 |
+
.btn-warning.disabled:active,
|
4076 |
+
.btn-warning[disabled]:active,
|
4077 |
+
fieldset[disabled] .btn-warning:active,
|
4078 |
+
.btn-warning.disabled.active,
|
4079 |
+
.btn-warning[disabled].active,
|
4080 |
+
fieldset[disabled] .btn-warning.active {
|
4081 |
+
background-color: #f39c12;
|
4082 |
+
border-color: #f39c12
|
4083 |
+
}
|
4084 |
+
|
4085 |
+
.btn-warning .badge {
|
4086 |
+
color: #f39c12;
|
4087 |
+
background-color: #ffffff
|
4088 |
+
}
|
4089 |
+
|
4090 |
+
.btn-danger {
|
4091 |
+
color: #ffffff;
|
4092 |
+
background-color: #e74c3c;
|
4093 |
+
border-color: #e74c3c
|
4094 |
+
}
|
4095 |
+
|
4096 |
+
.btn-danger:focus,
|
4097 |
+
.btn-danger.focus {
|
4098 |
+
color: #ffffff;
|
4099 |
+
background-color: #d62c1a;
|
4100 |
+
border-color: #921e12
|
4101 |
+
}
|
4102 |
+
|
4103 |
+
.btn-danger:hover {
|
4104 |
+
color: #ffffff;
|
4105 |
+
background-color: #d62c1a;
|
4106 |
+
border-color: #cd2a19
|
4107 |
+
}
|
4108 |
+
|
4109 |
+
.btn-danger:active,
|
4110 |
+
.btn-danger.active,
|
4111 |
+
.open>.dropdown-toggle.btn-danger {
|
4112 |
+
color: #ffffff;
|
4113 |
+
background-color: #d62c1a;
|
4114 |
+
border-color: #cd2a19
|
4115 |
+
}
|
4116 |
+
|
4117 |
+
.btn-danger:active:hover,
|
4118 |
+
.btn-danger.active:hover,
|
4119 |
+
.open>.dropdown-toggle.btn-danger:hover,
|
4120 |
+
.btn-danger:active:focus,
|
4121 |
+
.btn-danger.active:focus,
|
4122 |
+
.open>.dropdown-toggle.btn-danger:focus,
|
4123 |
+
.btn-danger:active.focus,
|
4124 |
+
.btn-danger.active.focus,
|
4125 |
+
.open>.dropdown-toggle.btn-danger.focus {
|
4126 |
+
color: #ffffff;
|
4127 |
+
background-color: #b62516;
|
4128 |
+
border-color: #921e12
|
4129 |
+
}
|
4130 |
+
|
4131 |
+
.btn-danger:active,
|
4132 |
+
.btn-danger.active,
|
4133 |
+
.open>.dropdown-toggle.btn-danger {
|
4134 |
+
background-image: none
|
4135 |
+
}
|
4136 |
+
|
4137 |
+
.btn-danger.disabled,
|
4138 |
+
.btn-danger[disabled],
|
4139 |
+
fieldset[disabled] .btn-danger,
|
4140 |
+
.btn-danger.disabled:hover,
|
4141 |
+
.btn-danger[disabled]:hover,
|
4142 |
+
fieldset[disabled] .btn-danger:hover,
|
4143 |
+
.btn-danger.disabled:focus,
|
4144 |
+
.btn-danger[disabled]:focus,
|
4145 |
+
fieldset[disabled] .btn-danger:focus,
|
4146 |
+
.btn-danger.disabled.focus,
|
4147 |
+
.btn-danger[disabled].focus,
|
4148 |
+
fieldset[disabled] .btn-danger.focus,
|
4149 |
+
.btn-danger.disabled:active,
|
4150 |
+
.btn-danger[disabled]:active,
|
4151 |
+
fieldset[disabled] .btn-danger:active,
|
4152 |
+
.btn-danger.disabled.active,
|
4153 |
+
.btn-danger[disabled].active,
|
4154 |
+
fieldset[disabled] .btn-danger.active {
|
4155 |
+
background-color: #e74c3c;
|
4156 |
+
border-color: #e74c3c
|
4157 |
+
}
|
4158 |
+
|
4159 |
+
.btn-danger .badge {
|
4160 |
+
color: #e74c3c;
|
4161 |
+
background-color: #ffffff
|
4162 |
+
}
|
4163 |
+
|
4164 |
+
.btn-link {
|
4165 |
+
color: #18bc9c;
|
4166 |
+
font-weight: normal;
|
4167 |
+
border-radius: 0
|
4168 |
+
}
|
4169 |
+
|
4170 |
+
.btn-link,
|
4171 |
+
.btn-link:active,
|
4172 |
+
.btn-link.active,
|
4173 |
+
.btn-link[disabled],
|
4174 |
+
fieldset[disabled] .btn-link {
|
4175 |
+
background-color: transparent;
|
4176 |
+
-webkit-box-shadow: none;
|
4177 |
+
box-shadow: none
|
4178 |
+
}
|
4179 |
+
|
4180 |
+
.btn-link,
|
4181 |
+
.btn-link:hover,
|
4182 |
+
.btn-link:focus,
|
4183 |
+
.btn-link:active {
|
4184 |
+
border-color: transparent
|
4185 |
+
}
|
4186 |
+
|
4187 |
+
.btn-link:hover,
|
4188 |
+
.btn-link:focus {
|
4189 |
+
color: #18bc9c;
|
4190 |
+
text-decoration: underline;
|
4191 |
+
background-color: transparent
|
4192 |
+
}
|
4193 |
+
|
4194 |
+
.btn-link[disabled]:hover,
|
4195 |
+
fieldset[disabled] .btn-link:hover,
|
4196 |
+
.btn-link[disabled]:focus,
|
4197 |
+
fieldset[disabled] .btn-link:focus {
|
4198 |
+
color: #b4bcc2;
|
4199 |
+
text-decoration: none
|
4200 |
+
}
|
4201 |
+
|
4202 |
+
.btn-lg,
|
4203 |
+
.btn-group-lg>.btn {
|
4204 |
+
padding: 18px 27px;
|
4205 |
+
font-size: 19px;
|
4206 |
+
line-height: 1.3333333;
|
4207 |
+
border-radius: 6px
|
4208 |
+
}
|
4209 |
+
|
4210 |
+
.btn-sm,
|
4211 |
+
.btn-group-sm>.btn {
|
4212 |
+
padding: 6px 9px;
|
4213 |
+
font-size: 13px;
|
4214 |
+
line-height: 1.5;
|
4215 |
+
border-radius: 3px
|
4216 |
+
}
|
4217 |
+
|
4218 |
+
.btn-xs,
|
4219 |
+
.btn-group-xs>.btn {
|
4220 |
+
padding: 1px 5px;
|
4221 |
+
font-size: 13px;
|
4222 |
+
line-height: 1.5;
|
4223 |
+
border-radius: 3px
|
4224 |
+
}
|
4225 |
+
|
4226 |
+
.btn-block {
|
4227 |
+
display: block;
|
4228 |
+
width: 100%
|
4229 |
+
}
|
4230 |
+
|
4231 |
+
.btn-block+.btn-block {
|
4232 |
+
margin-top: 5px
|
4233 |
+
}
|
4234 |
+
|
4235 |
+
input[type="submit"].btn-block,
|
4236 |
+
input[type="reset"].btn-block,
|
4237 |
+
input[type="button"].btn-block {
|
4238 |
+
width: 100%
|
4239 |
+
}
|
4240 |
+
|
4241 |
+
.fade {
|
4242 |
+
opacity: 0;
|
4243 |
+
-webkit-transition: opacity 0.15s linear;
|
4244 |
+
-o-transition: opacity 0.15s linear;
|
4245 |
+
transition: opacity 0.15s linear
|
4246 |
+
}
|
4247 |
+
|
4248 |
+
.fade.in {
|
4249 |
+
opacity: 1
|
4250 |
+
}
|
4251 |
+
|
4252 |
+
.collapse {
|
4253 |
+
display: none
|
4254 |
+
}
|
4255 |
+
|
4256 |
+
.collapse.in {
|
4257 |
+
display: block
|
4258 |
+
}
|
4259 |
+
|
4260 |
+
tr.collapse.in {
|
4261 |
+
display: table-row
|
4262 |
+
}
|
4263 |
+
|
4264 |
+
tbody.collapse.in {
|
4265 |
+
display: table-row-group
|
4266 |
+
}
|
4267 |
+
|
4268 |
+
.collapsing {
|
4269 |
+
position: relative;
|
4270 |
+
height: 0;
|
4271 |
+
overflow: hidden;
|
4272 |
+
-webkit-transition-property: height, visibility;
|
4273 |
+
-o-transition-property: height, visibility;
|
4274 |
+
transition-property: height, visibility;
|
4275 |
+
-webkit-transition-duration: 0.35s;
|
4276 |
+
-o-transition-duration: 0.35s;
|
4277 |
+
transition-duration: 0.35s;
|
4278 |
+
-webkit-transition-timing-function: ease;
|
4279 |
+
-o-transition-timing-function: ease;
|
4280 |
+
transition-timing-function: ease
|
4281 |
+
}
|
4282 |
+
|
4283 |
+
.caret {
|
4284 |
+
display: inline-block;
|
4285 |
+
width: 0;
|
4286 |
+
height: 0;
|
4287 |
+
margin-left: 2px;
|
4288 |
+
vertical-align: middle;
|
4289 |
+
border-top: 4px dashed;
|
4290 |
+
border-top: 4px solid \9;
|
4291 |
+
border-right: 4px solid transparent;
|
4292 |
+
border-left: 4px solid transparent
|
4293 |
+
}
|
4294 |
+
|
4295 |
+
.dropup,
|
4296 |
+
.dropdown {
|
4297 |
+
position: relative
|
4298 |
+
}
|
4299 |
+
|
4300 |
+
.dropdown-toggle:focus {
|
4301 |
+
outline: 0
|
4302 |
+
}
|
4303 |
+
|
4304 |
+
.dropdown-menu {
|
4305 |
+
position: absolute;
|
4306 |
+
top: 100%;
|
4307 |
+
left: 0;
|
4308 |
+
z-index: 1000;
|
4309 |
+
display: none;
|
4310 |
+
float: left;
|
4311 |
+
min-width: 160px;
|
4312 |
+
padding: 5px 0;
|
4313 |
+
margin: 2px 0 0;
|
4314 |
+
list-style: none;
|
4315 |
+
font-size: 15px;
|
4316 |
+
text-align: left;
|
4317 |
+
background-color: #ffffff;
|
4318 |
+
border: 1px solid #cccccc;
|
4319 |
+
border: 1px solid rgba(0, 0, 0, 0.15);
|
4320 |
+
border-radius: 4px;
|
4321 |
+
-webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
|
4322 |
+
box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175);
|
4323 |
+
-webkit-background-clip: padding-box;
|
4324 |
+
background-clip: padding-box
|
4325 |
+
}
|
4326 |
+
|
4327 |
+
.dropdown-menu.pull-right {
|
4328 |
+
right: 0;
|
4329 |
+
left: auto
|
4330 |
+
}
|
4331 |
+
|
4332 |
+
.dropdown-menu .divider {
|
4333 |
+
height: 1px;
|
4334 |
+
margin: 9.5px 0;
|
4335 |
+
overflow: hidden;
|
4336 |
+
background-color: #e5e5e5
|
4337 |
+
}
|
4338 |
+
|
4339 |
+
.dropdown-menu>li>a {
|
4340 |
+
display: block;
|
4341 |
+
padding: 3px 20px;
|
4342 |
+
clear: both;
|
4343 |
+
font-weight: normal;
|
4344 |
+
line-height: 1.42857143;
|
4345 |
+
color: #7b8a8b;
|
4346 |
+
white-space: nowrap
|
4347 |
+
}
|
4348 |
+
|
4349 |
+
.dropdown-menu>li>a:hover,
|
4350 |
+
.dropdown-menu>li>a:focus {
|
4351 |
+
text-decoration: none;
|
4352 |
+
color: #ffffff;
|
4353 |
+
background-color: #2c3e50
|
4354 |
+
}
|
4355 |
+
|
4356 |
+
.dropdown-menu>.active>a,
|
4357 |
+
.dropdown-menu>.active>a:hover,
|
4358 |
+
.dropdown-menu>.active>a:focus {
|
4359 |
+
color: #ffffff;
|
4360 |
+
text-decoration: none;
|
4361 |
+
outline: 0;
|
4362 |
+
background-color: #2c3e50
|
4363 |
+
}
|
4364 |
+
|
4365 |
+
.dropdown-menu>.disabled>a,
|
4366 |
+
.dropdown-menu>.disabled>a:hover,
|
4367 |
+
.dropdown-menu>.disabled>a:focus {
|
4368 |
+
color: #b4bcc2
|
4369 |
+
}
|
4370 |
+
|
4371 |
+
.dropdown-menu>.disabled>a:hover,
|
4372 |
+
.dropdown-menu>.disabled>a:focus {
|
4373 |
+
text-decoration: none;
|
4374 |
+
background-color: transparent;
|
4375 |
+
background-image: none;
|
4376 |
+
filter: progid: DXImageTransform.Microsoft.gradient(enabled=false);
|
4377 |
+
cursor: not-allowed
|
4378 |
+
}
|
4379 |
+
|
4380 |
+
.open>.dropdown-menu {
|
4381 |
+
display: block
|
4382 |
+
}
|
4383 |
+
|
4384 |
+
.open>a {
|
4385 |
+
outline: 0
|
4386 |
+
}
|
4387 |
+
|
4388 |
+
.dropdown-menu-right {
|
4389 |
+
left: auto;
|
4390 |
+
right: 0
|
4391 |
+
}
|
4392 |
+
|
4393 |
+
.dropdown-menu-left {
|
4394 |
+
left: 0;
|
4395 |
+
right: auto
|
4396 |
+
}
|
4397 |
+
|
4398 |
+
.dropdown-header {
|
4399 |
+
display: block;
|
4400 |
+
padding: 3px 20px;
|
4401 |
+
font-size: 13px;
|
4402 |
+
line-height: 1.42857143;
|
4403 |
+
color: #b4bcc2;
|
4404 |
+
white-space: nowrap
|
4405 |
+
}
|
4406 |
+
|
4407 |
+
.dropdown-backdrop {
|
4408 |
+
position: fixed;
|
4409 |
+
left: 0;
|
4410 |
+
right: 0;
|
4411 |
+
bottom: 0;
|
4412 |
+
top: 0;
|
4413 |
+
z-index: 990
|
4414 |
+
}
|
4415 |
+
|
4416 |
+
.pull-right>.dropdown-menu {
|
4417 |
+
right: 0;
|
4418 |
+
left: auto
|
4419 |
+
}
|
4420 |
+
|
4421 |
+
.dropup .caret,
|
4422 |
+
.navbar-fixed-bottom .dropdown .caret {
|
4423 |
+
border-top: 0;
|
4424 |
+
border-bottom: 4px dashed;
|
4425 |
+
border-bottom: 4px solid \9;
|
4426 |
+
content: ""
|
4427 |
+
}
|
4428 |
+
|
4429 |
+
.dropup .dropdown-menu,
|
4430 |
+
.navbar-fixed-bottom .dropdown .dropdown-menu {
|
4431 |
+
top: auto;
|
4432 |
+
bottom: 100%;
|
4433 |
+
margin-bottom: 2px
|
4434 |
+
}
|
4435 |
+
|
4436 |
+
@media (min-width: 768px) {
|
4437 |
+
.navbar-right .dropdown-menu {
|
4438 |
+
left: auto;
|
4439 |
+
right: 0
|
4440 |
+
}
|
4441 |
+
.navbar-right .dropdown-menu-left {
|
4442 |
+
left: 0;
|
4443 |
+
right: auto
|
4444 |
+
}
|
4445 |
+
}
|
4446 |
+
|
4447 |
+
.btn-group,
|
4448 |
+
.btn-group-vertical {
|
4449 |
+
position: relative;
|
4450 |
+
display: inline-block;
|
4451 |
+
vertical-align: middle
|
4452 |
+
}
|
4453 |
+
|
4454 |
+
.btn-group>.btn,
|
4455 |
+
.btn-group-vertical>.btn {
|
4456 |
+
position: relative;
|
4457 |
+
float: left
|
4458 |
+
}
|
4459 |
+
|
4460 |
+
.btn-group>.btn:hover,
|
4461 |
+
.btn-group-vertical>.btn:hover,
|
4462 |
+
.btn-group>.btn:focus,
|
4463 |
+
.btn-group-vertical>.btn:focus,
|
4464 |
+
.btn-group>.btn:active,
|
4465 |
+
.btn-group-vertical>.btn:active,
|
4466 |
+
.btn-group>.btn.active,
|
4467 |
+
.btn-group-vertical>.btn.active {
|
4468 |
+
z-index: 2
|
4469 |
+
}
|
4470 |
+
|
4471 |
+
.btn-group .btn+.btn,
|
4472 |
+
.btn-group .btn+.btn-group,
|
4473 |
+
.btn-group .btn-group+.btn,
|
4474 |
+
.btn-group .btn-group+.btn-group {
|
4475 |
+
margin-left: -1px
|
4476 |
+
}
|
4477 |
+
|
4478 |
+
.btn-toolbar {
|
4479 |
+
margin-left: -5px
|
4480 |
+
}
|
4481 |
+
|
4482 |
+
.btn-toolbar .btn,
|
4483 |
+
.btn-toolbar .btn-group,
|
4484 |
+
.btn-toolbar .input-group {
|
4485 |
+
float: left
|
4486 |
+
}
|
4487 |
+
|
4488 |
+
.btn-toolbar>.btn,
|
4489 |
+
.btn-toolbar>.btn-group,
|
4490 |
+
.btn-toolbar>.input-group {
|
4491 |
+
margin-left: 5px
|
4492 |
+
}
|
4493 |
+
|
4494 |
+
.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle) {
|
4495 |
+
border-radius: 0
|
4496 |
+
}
|
4497 |
+
|
4498 |
+
.btn-group>.btn:first-child {
|
4499 |
+
margin-left: 0
|
4500 |
+
}
|
4501 |
+
|
4502 |
+
.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle) {
|
4503 |
+
border-bottom-right-radius: 0;
|
4504 |
+
border-top-right-radius: 0
|
4505 |
+
}
|
4506 |
+
|
4507 |
+
.btn-group>.btn:last-child:not(:first-child),
|
4508 |
+
.btn-group>.dropdown-toggle:not(:first-child) {
|
4509 |
+
border-bottom-left-radius: 0;
|
4510 |
+
border-top-left-radius: 0
|
4511 |
+
}
|
4512 |
+
|
4513 |
+
.btn-group>.btn-group {
|
4514 |
+
float: left
|
4515 |
+
}
|
4516 |
+
|
4517 |
+
.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn {
|
4518 |
+
border-radius: 0
|
4519 |
+
}
|
4520 |
+
|
4521 |
+
.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,
|
4522 |
+
.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle {
|
4523 |
+
border-bottom-right-radius: 0;
|
4524 |
+
border-top-right-radius: 0
|
4525 |
+
}
|
4526 |
+
|
4527 |
+
.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child {
|
4528 |
+
border-bottom-left-radius: 0;
|
4529 |
+
border-top-left-radius: 0
|
4530 |
+
}
|
4531 |
+
|
4532 |
+
.btn-group .dropdown-toggle:active,
|
4533 |
+
.btn-group.open .dropdown-toggle {
|
4534 |
+
outline: 0
|
4535 |
+
}
|
4536 |
+
|
4537 |
+
.btn-group>.btn+.dropdown-toggle {
|
4538 |
+
padding-left: 8px;
|
4539 |
+
padding-right: 8px
|
4540 |
+
}
|
4541 |
+
|
4542 |
+
.btn-group>.btn-lg+.dropdown-toggle {
|
4543 |
+
padding-left: 12px;
|
4544 |
+
padding-right: 12px
|
4545 |
+
}
|
4546 |
+
|
4547 |
+
.btn-group.open .dropdown-toggle {
|
4548 |
+
-webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125);
|
4549 |
+
box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125)
|
4550 |
+
}
|
4551 |
+
|
4552 |
+
.btn-group.open .dropdown-toggle.btn-link {
|
4553 |
+
-webkit-box-shadow: none;
|
4554 |
+
box-shadow: none
|
4555 |
+
}
|
4556 |
+
|
4557 |
+
.btn .caret {
|
4558 |
+
margin-left: 0
|
4559 |
+
}
|
4560 |
+
|
4561 |
+
.btn-lg .caret {
|
4562 |
+
border-width: 5px 5px 0;
|
4563 |
+
border-bottom-width: 0
|
4564 |
+
}
|
4565 |
+
|
4566 |
+
.dropup .btn-lg .caret {
|
4567 |
+
border-width: 0 5px 5px
|
4568 |
+
}
|
4569 |
+
|
4570 |
+
.btn-group-vertical>.btn,
|
4571 |
+
.btn-group-vertical>.btn-group,
|
4572 |
+
.btn-group-vertical>.btn-group>.btn {
|
4573 |
+
display: block;
|
4574 |
+
float: none;
|
4575 |
+
width: 100%;
|
4576 |
+
max-width: 100%
|
4577 |
+
}
|
4578 |
+
|
4579 |
+
.btn-group-vertical>.btn-group>.btn {
|
4580 |
+
float: none
|
4581 |
+
}
|
4582 |
+
|
4583 |
+
.btn-group-vertical>.btn+.btn,
|
4584 |
+
.btn-group-vertical>.btn+.btn-group,
|
4585 |
+
.btn-group-vertical>.btn-group+.btn,
|
4586 |
+
.btn-group-vertical>.btn-group+.btn-group {
|
4587 |
+
margin-top: -1px;
|
4588 |
+
margin-left: 0
|
4589 |
+
}
|
4590 |
+
|
4591 |
+
.btn-group-vertical>.btn:not(:first-child):not(:last-child) {
|
4592 |
+
border-radius: 0
|
4593 |
+
}
|
4594 |
+
|
4595 |
+
.btn-group-vertical>.btn:first-child:not(:last-child) {
|
4596 |
+
border-top-right-radius: 4px;
|
4597 |
+
border-bottom-right-radius: 0;
|
4598 |
+
border-bottom-left-radius: 0
|
4599 |
+
}
|
4600 |
+
|
4601 |
+
.btn-group-vertical>.btn:last-child:not(:first-child) {
|
4602 |
+
border-bottom-left-radius: 4px;
|
4603 |
+
border-top-right-radius: 0;
|
4604 |
+
border-top-left-radius: 0
|
4605 |
+
}
|
4606 |
+
|
4607 |
+
.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn {
|
4608 |
+
border-radius: 0
|
4609 |
+
}
|
4610 |
+
|
4611 |
+
.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,
|
4612 |
+
.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle {
|
4613 |
+
border-bottom-right-radius: 0;
|
4614 |
+
border-bottom-left-radius: 0
|
4615 |
+
}
|
4616 |
+
|
4617 |
+
.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child {
|
4618 |
+
border-top-right-radius: 0;
|
4619 |
+
border-top-left-radius: 0
|
4620 |
+
}
|
4621 |
+
|
4622 |
+
.btn-group-justified {
|
4623 |
+
display: table;
|
4624 |
+
width: 100%;
|
4625 |
+
table-layout: fixed;
|
4626 |
+
border-collapse: separate
|
4627 |
+
}
|
4628 |
+
|
4629 |
+
.btn-group-justified>.btn,
|
4630 |
+
.btn-group-justified>.btn-group {
|
4631 |
+
float: none;
|
4632 |
+
display: table-cell;
|
4633 |
+
width: 1%
|
4634 |
+
}
|
4635 |
+
|
4636 |
+
.btn-group-justified>.btn-group .btn {
|
4637 |
+
width: 100%
|
4638 |
+
}
|
4639 |
+
|
4640 |
+
.btn-group-justified>.btn-group .dropdown-menu {
|
4641 |
+
left: auto
|
4642 |
+
}
|
4643 |
+
|
4644 |
+
[data-toggle="buttons"]>.btn input[type="radio"],
|
4645 |
+
[data-toggle="buttons"]>.btn-group>.btn input[type="radio"],
|
4646 |
+
[data-toggle="buttons"]>.btn input[type="checkbox"],
|
4647 |
+
[data-toggle="buttons"]>.btn-group>.btn input[type="checkbox"] {
|
4648 |
+
position: absolute;
|
4649 |
+
clip: rect(0, 0, 0, 0);
|
4650 |
+
pointer-events: none
|
4651 |
+
}
|
4652 |
+
|
4653 |
+
.input-group {
|
4654 |
+
position: relative;
|
4655 |
+
display: table;
|
4656 |
+
border-collapse: separate
|
4657 |
+
}
|
4658 |
+
|
4659 |
+
.input-group[class*="col-"] {
|
4660 |
+
float: none;
|
4661 |
+
padding-left: 0;
|
4662 |
+
padding-right: 0
|
4663 |
+
}
|
4664 |
+
|
4665 |
+
.input-group .form-control {
|
4666 |
+
position: relative;
|
4667 |
+
z-index: 2;
|
4668 |
+
float: left;
|
4669 |
+
width: 100%;
|
4670 |
+
margin-bottom: 0
|
4671 |
+
}
|
4672 |
+
|
4673 |
+
.input-group-lg>.form-control,
|
4674 |
+
.input-group-lg>.input-group-addon,
|
4675 |
+
.input-group-lg>.input-group-btn>.btn {
|
4676 |
+
height: 66px;
|
4677 |
+
padding: 18px 27px;
|
4678 |
+
font-size: 19px;
|
4679 |
+
line-height: 1.3333333;
|
4680 |
+
border-radius: 6px
|
4681 |
+
}
|
4682 |
+
|
4683 |
+
select.input-group-lg>.form-control,
|
4684 |
+
select.input-group-lg>.input-group-addon,
|
4685 |
+
select.input-group-lg>.input-group-btn>.btn {
|
4686 |
+
height: 66px;
|
4687 |
+
line-height: 66px
|
4688 |
+
}
|
4689 |
+
|
4690 |
+
textarea.input-group-lg>.form-control,
|
4691 |
+
textarea.input-group-lg>.input-group-addon,
|
4692 |
+
textarea.input-group-lg>.input-group-btn>.btn,
|
4693 |
+
select[multiple].input-group-lg>.form-control,
|
4694 |
+
select[multiple].input-group-lg>.input-group-addon,
|
4695 |
+
select[multiple].input-group-lg>.input-group-btn>.btn {
|
4696 |
+
height: auto
|
4697 |
+
}
|
4698 |
+
|
4699 |
+
.input-group-sm>.form-control,
|
4700 |
+
.input-group-sm>.input-group-addon,
|
4701 |
+
.input-group-sm>.input-group-btn>.btn {
|
4702 |
+
height: 35px;
|
4703 |
+
padding: 6px 9px;
|
4704 |
+
font-size: 13px;
|
4705 |
+
line-height: 1.5;
|
4706 |
+
border-radius: 3px
|
4707 |
+
}
|
4708 |
+
|
4709 |
+
select.input-group-sm>.form-control,
|
4710 |
+
select.input-group-sm>.input-group-addon,
|
4711 |
+
select.input-group-sm>.input-group-btn>.btn {
|
4712 |
+
height: 35px;
|
4713 |
+
line-height: 35px
|
4714 |
+
}
|
4715 |
+
|
4716 |
+
textarea.input-group-sm>.form-control,
|
4717 |
+
textarea.input-group-sm>.input-group-addon,
|
4718 |
+
textarea.input-group-sm>.input-group-btn>.btn,
|
4719 |
+
select[multiple].input-group-sm>.form-control,
|
4720 |
+
select[multiple].input-group-sm>.input-group-addon,
|
4721 |
+
select[multiple].input-group-sm>.input-group-btn>.btn {
|
4722 |
+
height: auto
|
4723 |
+
}
|
4724 |
+
|
4725 |
+
.input-group-addon,
|
4726 |
+
.input-group-btn,
|
4727 |
+
.input-group .form-control {
|
4728 |
+
display: table-cell
|
4729 |
+
}
|
4730 |
+
|
4731 |
+
.input-group-addon:not(:first-child):not(:last-child),
|
4732 |
+
.input-group-btn:not(:first-child):not(:last-child),
|
4733 |
+
.input-group .form-control:not(:first-child):not(:last-child) {
|
4734 |
+
border-radius: 0
|
4735 |
+
}
|
4736 |
+
|
4737 |
+
.input-group-addon,
|
4738 |
+
.input-group-btn {
|
4739 |
+
width: 1%;
|
4740 |
+
white-space: nowrap;
|
4741 |
+
vertical-align: middle
|
4742 |
+
}
|
4743 |
+
|
4744 |
+
.input-group-addon {
|
4745 |
+
padding: 10px 15px;
|
4746 |
+
font-size: 15px;
|
4747 |
+
font-weight: normal;
|
4748 |
+
line-height: 1;
|
4749 |
+
color: #2c3e50;
|
4750 |
+
text-align: center;
|
4751 |
+
background-color: #ecf0f1;
|
4752 |
+
border: 1px solid #dce4ec;
|
4753 |
+
border-radius: 4px
|
4754 |
+
}
|
4755 |
+
|
4756 |
+
.input-group-addon.input-sm {
|
4757 |
+
padding: 6px 9px;
|
4758 |
+
font-size: 13px;
|
4759 |
+
border-radius: 3px
|
4760 |
+
}
|
4761 |
+
|
4762 |
+
.input-group-addon.input-lg {
|
4763 |
+
padding: 18px 27px;
|
4764 |
+
font-size: 19px;
|
4765 |
+
border-radius: 6px
|
4766 |
+
}
|
4767 |
+
|
4768 |
+
.input-group-addon input[type="radio"],
|
4769 |
+
.input-group-addon input[type="checkbox"] {
|
4770 |
+
margin-top: 0
|
4771 |
+
}
|
4772 |
+
|
4773 |
+
.input-group .form-control:first-child,
|
4774 |
+
.input-group-addon:first-child,
|
4775 |
+
.input-group-btn:first-child>.btn,
|
4776 |
+
.input-group-btn:first-child>.btn-group>.btn,
|
4777 |
+
.input-group-btn:first-child>.dropdown-toggle,
|
4778 |
+
.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),
|
4779 |
+
.input-group-btn:last-child>.btn-group:not(:last-child)>.btn {
|
4780 |
+
border-bottom-right-radius: 0;
|
4781 |
+
border-top-right-radius: 0
|
4782 |
+
}
|
4783 |
+
|
4784 |
+
.input-group-addon:first-child {
|
4785 |
+
border-right: 0
|
4786 |
+
}
|
4787 |
+
|
4788 |
+
.input-group .form-control:last-child,
|
4789 |
+
.input-group-addon:last-child,
|
4790 |
+
.input-group-btn:last-child>.btn,
|
4791 |
+
.input-group-btn:last-child>.btn-group>.btn,
|
4792 |
+
.input-group-btn:last-child>.dropdown-toggle,
|
4793 |
+
.input-group-btn:first-child>.btn:not(:first-child),
|
4794 |
+
.input-group-btn:first-child>.btn-group:not(:first-child)>.btn {
|
4795 |
+
border-bottom-left-radius: 0;
|
4796 |
+
border-top-left-radius: 0
|
4797 |
+
}
|
4798 |
+
|
4799 |
+
.input-group-addon:last-child {
|
4800 |
+
border-left: 0
|
4801 |
+
}
|
4802 |
+
|
4803 |
+
.input-group-btn {
|
4804 |
+
position: relative;
|
4805 |
+
font-size: 0;
|
4806 |
+
white-space: nowrap
|
4807 |
+
}
|
4808 |
+
|
4809 |
+
.input-group-btn>.btn {
|
4810 |
+
position: relative
|
4811 |
+
}
|
4812 |
+
|
4813 |
+
.input-group-btn>.btn+.btn {
|
4814 |
+
margin-left: -1px
|
4815 |
+
}
|
4816 |
+
|
4817 |
+
.input-group-btn>.btn:hover,
|
4818 |
+
.input-group-btn>.btn:focus,
|
4819 |
+
.input-group-btn>.btn:active {
|
4820 |
+
z-index: 2
|
4821 |
+
}
|
4822 |
+
|
4823 |
+
.input-group-btn:first-child>.btn,
|
4824 |
+
.input-group-btn:first-child>.btn-group {
|
4825 |
+
margin-right: -1px
|
4826 |
+
}
|
4827 |
+
|
4828 |
+
.input-group-btn:last-child>.btn,
|
4829 |
+
.input-group-btn:last-child>.btn-group {
|
4830 |
+
z-index: 2;
|
4831 |
+
margin-left: -1px
|
4832 |
+
}
|
4833 |
+
|
4834 |
+
.nav {
|
4835 |
+
margin-bottom: 0;
|
4836 |
+
padding-left: 0;
|
4837 |
+
list-style: none
|
4838 |
+
}
|
4839 |
+
|
4840 |
+
.nav>li {
|
4841 |
+
position: relative;
|
4842 |
+
display: block
|
4843 |
+
}
|
4844 |
+
|
4845 |
+
.nav>li>a {
|
4846 |
+
position: relative;
|
4847 |
+
display: block;
|
4848 |
+
padding: 10px 15px
|
4849 |
+
}
|
4850 |
+
|
4851 |
+
.nav>li>a:hover,
|
4852 |
+
.nav>li>a:focus {
|
4853 |
+
text-decoration: none;
|
4854 |
+
background-color: #ecf0f1
|
4855 |
+
}
|
4856 |
+
|
4857 |
+
.nav>li.disabled>a {
|
4858 |
+
color: #b4bcc2
|
4859 |
+
}
|
4860 |
+
|
4861 |
+
.nav>li.disabled>a:hover,
|
4862 |
+
.nav>li.disabled>a:focus {
|
4863 |
+
color: #b4bcc2;
|
4864 |
+
text-decoration: none;
|
4865 |
+
background-color: transparent;
|
4866 |
+
cursor: not-allowed
|
4867 |
+
}
|
4868 |
+
|
4869 |
+
.nav .open>a,
|
4870 |
+
.nav .open>a:hover,
|
4871 |
+
.nav .open>a:focus {
|
4872 |
+
background-color: #ecf0f1;
|
4873 |
+
border-color: #18bc9c
|
4874 |
+
}
|
4875 |
+
|
4876 |
+
.nav .nav-divider {
|
4877 |
+
height: 1px;
|
4878 |
+
margin: 9.5px 0;
|
4879 |
+
overflow: hidden;
|
4880 |
+
background-color: #e5e5e5
|
4881 |
+
}
|
4882 |
+
|
4883 |
+
.nav>li>a>img {
|
4884 |
+
max-width: none
|
4885 |
+
}
|
4886 |
+
|
4887 |
+
.nav-tabs {
|
4888 |
+
border-bottom: 1px solid #ecf0f1
|
4889 |
+
}
|
4890 |
+
|
4891 |
+
.nav-tabs>li {
|
4892 |
+
float: left;
|
4893 |
+
margin-bottom: -1px
|
4894 |
+
}
|
4895 |
+
|
4896 |
+
.nav-tabs>li>a {
|
4897 |
+
margin-right: 2px;
|
4898 |
+
line-height: 1.42857143;
|
4899 |
+
border: 1px solid transparent;
|
4900 |
+
border-radius: 4px 4px 0 0
|
4901 |
+
}
|
4902 |
+
|
4903 |
+
.nav-tabs>li>a:hover {
|
4904 |
+
border-color: #ecf0f1 #ecf0f1 #ecf0f1
|
4905 |
+
}
|
4906 |
+
|
4907 |
+
.nav-tabs>li.active>a,
|
4908 |
+
.nav-tabs>li.active>a:hover,
|
4909 |
+
.nav-tabs>li.active>a:focus {
|
4910 |
+
color: #2c3e50;
|
4911 |
+
background-color: #ffffff;
|
4912 |
+
border: 1px solid #ecf0f1;
|
4913 |
+
border-bottom-color: transparent;
|
4914 |
+
cursor: default
|
4915 |
+
}
|
4916 |
+
|
4917 |
+
.nav-tabs.nav-justified {
|
4918 |
+
width: 100%;
|
4919 |
+
border-bottom: 0
|
4920 |
+
}
|
4921 |
+
|
4922 |
+
.nav-tabs.nav-justified>li {
|
4923 |
+
float: none
|
4924 |
+
}
|
4925 |
+
|
4926 |
+
.nav-tabs.nav-justified>li>a {
|
4927 |
+
text-align: center;
|
4928 |
+
margin-bottom: 5px
|
4929 |
+
}
|
4930 |
+
|
4931 |
+
.nav-tabs.nav-justified>.dropdown .dropdown-menu {
|
4932 |
+
top: auto;
|
4933 |
+
left: auto
|
4934 |
+
}
|
4935 |
+
|
4936 |
+
@media (min-width: 768px) {
|
4937 |
+
.nav-tabs.nav-justified>li {
|
4938 |
+
display: table-cell;
|
4939 |
+
width: 1%
|
4940 |
+
}
|
4941 |
+
.nav-tabs.nav-justified>li>a {
|
4942 |
+
margin-bottom: 0
|
4943 |
+
}
|
4944 |
+
}
|
4945 |
+
|
4946 |
+
.nav-tabs.nav-justified>li>a {
|
4947 |
+
margin-right: 0;
|
4948 |
+
border-radius: 4px
|
4949 |
+
}
|
4950 |
+
|
4951 |
+
.nav-tabs.nav-justified>.active>a,
|
4952 |
+
.nav-tabs.nav-justified>.active>a:hover,
|
4953 |
+
.nav-tabs.nav-justified>.active>a:focus {
|
4954 |
+
border: 1px solid #ecf0f1
|
4955 |
+
}
|
4956 |
+
|
4957 |
+
@media (min-width: 768px) {
|
4958 |
+
.nav-tabs.nav-justified>li>a {
|
4959 |
+
border-bottom: 1px solid #ecf0f1;
|
4960 |
+
border-radius: 4px 4px 0 0
|
4961 |
+
}
|
4962 |
+
.nav-tabs.nav-justified>.active>a,
|
4963 |
+
.nav-tabs.nav-justified>.active>a:hover,
|
4964 |
+
.nav-tabs.nav-justified>.active>a:focus {
|
4965 |
+
border-bottom-color: #ffffff
|
4966 |
+
}
|
4967 |
+
}
|
4968 |
+
|
4969 |
+
.nav-pills>li {
|
4970 |
+
float: left
|
4971 |
+
}
|
4972 |
+
|
4973 |
+
.nav-pills>li>a {
|
4974 |
+
border-radius: 4px
|
4975 |
+
}
|
4976 |
+
|
4977 |
+
.nav-pills>li+li {
|
4978 |
+
margin-left: 2px
|
4979 |
+
}
|
4980 |
+
|
4981 |
+
.nav-pills>li.active>a,
|
4982 |
+
.nav-pills>li.active>a:hover,
|
4983 |
+
.nav-pills>li.active>a:focus {
|
4984 |
+
color: #ffffff;
|
4985 |
+
background-color: #2c3e50
|
4986 |
+
}
|
4987 |
+
|
4988 |
+
.nav-stacked>li {
|
4989 |
+
float: none
|
4990 |
+
}
|
4991 |
+
|
4992 |
+
.nav-stacked>li+li {
|
4993 |
+
margin-top: 2px;
|
4994 |
+
margin-left: 0
|
4995 |
+
}
|
4996 |
+
|
4997 |
+
.nav-justified {
|
4998 |
+
width: 100%
|
4999 |
+
}
|
5000 |
+
|
5001 |
+
.nav-justified>li {
|
5002 |
+
float: none
|
5003 |
+
}
|
5004 |
+
|
5005 |
+
.nav-justified>li>a {
|
5006 |
+
text-align: center;
|
5007 |
+
margin-bottom: 5px
|
5008 |
+
}
|
5009 |
+
|
5010 |
+
.nav-justified>.dropdown .dropdown-menu {
|
5011 |
+
top: auto;
|
5012 |
+
left: auto
|
5013 |
+
}
|
5014 |
+
|
5015 |
+
@media (min-width: 768px) {
|
5016 |
+
.nav-justified>li {
|
5017 |
+
display: table-cell;
|
5018 |
+
width: 1%
|
5019 |
+
}
|
5020 |
+
.nav-justified>li>a {
|
5021 |
+
margin-bottom: 0
|
5022 |
+
}
|
5023 |
+
}
|
5024 |
+
|
5025 |
+
.nav-tabs-justified {
|
5026 |
+
border-bottom: 0
|
5027 |
+
}
|
5028 |
+
|
5029 |
+
.nav-tabs-justified>li>a {
|
5030 |
+
margin-right: 0;
|
5031 |
+
border-radius: 4px
|
5032 |
+
}
|
5033 |
+
|
5034 |
+
.nav-tabs-justified>.active>a,
|
5035 |
+
.nav-tabs-justified>.active>a:hover,
|
5036 |
+
.nav-tabs-justified>.active>a:focus {
|
5037 |
+
border: 1px solid #ecf0f1
|
5038 |
+
}
|
5039 |
+
|
5040 |
+
@media (min-width: 768px) {
|
5041 |
+
.nav-tabs-justified>li>a {
|
5042 |
+
border-bottom: 1px solid #ecf0f1;
|
5043 |
+
border-radius: 4px 4px 0 0
|
5044 |
+
}
|
5045 |
+
.nav-tabs-justified>.active>a,
|
5046 |
+
.nav-tabs-justified>.active>a:hover,
|
5047 |
+
.nav-tabs-justified>.active>a:focus {
|
5048 |
+
border-bottom-color: #ffffff
|
5049 |
+
}
|
5050 |
+
}
|
5051 |
+
|
5052 |
+
.tab-content>.tab-pane {
|
5053 |
+
display: none
|
5054 |
+
}
|
5055 |
+
|
5056 |
+
.tab-content>.active {
|
5057 |
+
display: block
|
5058 |
+
}
|
5059 |
+
|
5060 |
+
.nav-tabs .dropdown-menu {
|
5061 |
+
margin-top: -1px;
|
5062 |
+
border-top-right-radius: 0;
|
5063 |
+
border-top-left-radius: 0
|
5064 |
+
}
|
5065 |
+
|
5066 |
+
.navbar {
|
5067 |
+
position: relative;
|
5068 |
+
min-height: 60px;
|
5069 |
+
margin-bottom: 21px;
|
5070 |
+
border: 1px solid transparent
|
5071 |
+
}
|
5072 |
+
|
5073 |
+
@media (min-width: 768px) {
|
5074 |
+
.navbar {
|
5075 |
+
border-radius: 4px
|
5076 |
+
}
|
5077 |
+
}
|
5078 |
+
|
5079 |
+
@media (min-width: 768px) {
|
5080 |
+
.navbar-header {
|
5081 |
+
float: left
|
5082 |
+
}
|
5083 |
+
}
|
5084 |
+
|
5085 |
+
.navbar-collapse {
|
5086 |
+
overflow-x: visible;
|
5087 |
+
padding-right: 15px;
|
5088 |
+
padding-left: 15px;
|
5089 |
+
border-top: 1px solid transparent;
|
5090 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
5091 |
+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1);
|
5092 |
+
-webkit-overflow-scrolling: touch
|
5093 |
+
}
|
5094 |
+
|
5095 |
+
.navbar-collapse.in {
|
5096 |
+
overflow-y: auto
|
5097 |
+
}
|
5098 |
+
|
5099 |
+
@media (min-width: 768px) {
|
5100 |
+
.navbar-collapse {
|
5101 |
+
width: auto;
|
5102 |
+
border-top: 0;
|
5103 |
+
-webkit-box-shadow: none;
|
5104 |
+
box-shadow: none
|
5105 |
+
}
|
5106 |
+
.navbar-collapse.collapse {
|
5107 |
+
display: block !important;
|
5108 |
+
height: auto !important;
|
5109 |
+
padding-bottom: 0;
|
5110 |
+
overflow: visible !important
|
5111 |
+
}
|
5112 |
+
.navbar-collapse.in {
|
5113 |
+
overflow-y: visible
|
5114 |
+
}
|
5115 |
+
.navbar-fixed-top .navbar-collapse,
|
5116 |
+
.navbar-static-top .navbar-collapse,
|
5117 |
+
.navbar-fixed-bottom .navbar-collapse {
|
5118 |
+
padding-left: 0;
|
5119 |
+
padding-right: 0
|
5120 |
+
}
|
5121 |
+
}
|
5122 |
+
|
5123 |
+
.navbar-fixed-top .navbar-collapse,
|
5124 |
+
.navbar-fixed-bottom .navbar-collapse {
|
5125 |
+
max-height: 340px
|
5126 |
+
}
|
5127 |
+
|
5128 |
+
@media (max-device-width: 480px) and (orientation: landscape) {
|
5129 |
+
.navbar-fixed-top .navbar-collapse,
|
5130 |
+
.navbar-fixed-bottom .navbar-collapse {
|
5131 |
+
max-height: 200px
|
5132 |
+
}
|
5133 |
+
}
|
5134 |
+
|
5135 |
+
.container>.navbar-header,
|
5136 |
+
.container-fluid>.navbar-header,
|
5137 |
+
.container>.navbar-collapse,
|
5138 |
+
.container-fluid>.navbar-collapse {
|
5139 |
+
margin-right: -15px;
|
5140 |
+
margin-left: -15px
|
5141 |
+
}
|
5142 |
+
|
5143 |
+
@media (min-width: 768px) {
|
5144 |
+
.container>.navbar-header,
|
5145 |
+
.container-fluid>.navbar-header,
|
5146 |
+
.container>.navbar-collapse,
|
5147 |
+
.container-fluid>.navbar-collapse {
|
5148 |
+
margin-right: 0;
|
5149 |
+
margin-left: 0
|
5150 |
+
}
|
5151 |
+
}
|
5152 |
+
|
5153 |
+
.navbar-static-top {
|
5154 |
+
z-index: 1000;
|
5155 |
+
border-width: 0 0 1px
|
5156 |
+
}
|
5157 |
+
|
5158 |
+
@media (min-width: 768px) {
|
5159 |
+
.navbar-static-top {
|
5160 |
+
border-radius: 0
|
5161 |
+
}
|
5162 |
+
}
|
5163 |
+
|
5164 |
+
.navbar-fixed-top,
|
5165 |
+
.navbar-fixed-bottom {
|
5166 |
+
position: fixed;
|
5167 |
+
right: 0;
|
5168 |
+
left: 0;
|
5169 |
+
z-index: 1030
|
5170 |
+
}
|
5171 |
+
|
5172 |
+
@media (min-width: 768px) {
|
5173 |
+
.navbar-fixed-top,
|
5174 |
+
.navbar-fixed-bottom {
|
5175 |
+
border-radius: 0
|
5176 |
+
}
|
5177 |
+
}
|
5178 |
+
|
5179 |
+
.navbar-fixed-top {
|
5180 |
+
top: 0;
|
5181 |
+
border-width: 0 0 1px
|
5182 |
+
}
|
5183 |
+
|
5184 |
+
.navbar-fixed-bottom {
|
5185 |
+
bottom: 0;
|
5186 |
+
margin-bottom: 0;
|
5187 |
+
border-width: 1px 0 0
|
5188 |
+
}
|
5189 |
+
|
5190 |
+
.navbar-brand {
|
5191 |
+
float: left;
|
5192 |
+
padding: 19.5px 15px;
|
5193 |
+
font-size: 19px;
|
5194 |
+
line-height: 21px;
|
5195 |
+
height: 60px
|
5196 |
+
}
|
5197 |
+
|
5198 |
+
.navbar-brand:hover,
|
5199 |
+
.navbar-brand:focus {
|
5200 |
+
text-decoration: none
|
5201 |
+
}
|
5202 |
+
|
5203 |
+
.navbar-brand>img {
|
5204 |
+
display: block
|
5205 |
+
}
|
5206 |
+
|
5207 |
+
@media (min-width: 768px) {
|
5208 |
+
.navbar>.container .navbar-brand,
|
5209 |
+
.navbar>.container-fluid .navbar-brand {
|
5210 |
+
margin-left: -15px
|
5211 |
+
}
|
5212 |
+
}
|
5213 |
+
|
5214 |
+
.navbar-toggle {
|
5215 |
+
position: relative;
|
5216 |
+
float: right;
|
5217 |
+
margin-right: 15px;
|
5218 |
+
padding: 9px 10px;
|
5219 |
+
margin-top: 13px;
|
5220 |
+
margin-bottom: 13px;
|
5221 |
+
background-color: transparent;
|
5222 |
+
background-image: none;
|
5223 |
+
border: 1px solid transparent;
|
5224 |
+
border-radius: 4px
|
5225 |
+
}
|
5226 |
+
|
5227 |
+
.navbar-toggle:focus {
|
5228 |
+
outline: 0
|
5229 |
+
}
|
5230 |
+
|
5231 |
+
.navbar-toggle .icon-bar {
|
5232 |
+
display: block;
|
5233 |
+
width: 22px;
|
5234 |
+
height: 2px;
|
5235 |
+
border-radius: 1px
|
5236 |
+
}
|
5237 |
+
|
5238 |
+
.navbar-toggle .icon-bar+.icon-bar {
|
5239 |
+
margin-top: 4px
|
5240 |
+
}
|
5241 |
+
|
5242 |
+
@media (min-width: 768px) {
|
5243 |
+
.navbar-toggle {
|
5244 |
+
display: none
|
5245 |
+
}
|
5246 |
+
}
|
5247 |
+
|
5248 |
+
.navbar-nav {
|
5249 |
+
margin: 9.75px -15px
|
5250 |
+
}
|
5251 |
+
|
5252 |
+
.navbar-nav>li>a {
|
5253 |
+
padding-top: 10px;
|
5254 |
+
padding-bottom: 10px;
|
5255 |
+
line-height: 21px
|
5256 |
+
}
|
5257 |
+
|
5258 |
+
@media (max-width: 767px) {
|
5259 |
+
.navbar-nav .open .dropdown-menu {
|
5260 |
+
position: static;
|
5261 |
+
float: none;
|
5262 |
+
width: auto;
|
5263 |
+
margin-top: 0;
|
5264 |
+
background-color: transparent;
|
5265 |
+
border: 0;
|
5266 |
+
-webkit-box-shadow: none;
|
5267 |
+
box-shadow: none
|
5268 |
+
}
|
5269 |
+
.navbar-nav .open .dropdown-menu>li>a,
|
5270 |
+
.navbar-nav .open .dropdown-menu .dropdown-header {
|
5271 |
+
padding: 5px 15px 5px 25px
|
5272 |
+
}
|
5273 |
+
.navbar-nav .open .dropdown-menu>li>a {
|
5274 |
+
line-height: 21px
|
5275 |
+
}
|
5276 |
+
.navbar-nav .open .dropdown-menu>li>a:hover,
|
5277 |
+
.navbar-nav .open .dropdown-menu>li>a:focus {
|
5278 |
+
background-image: none
|
5279 |
+
}
|
5280 |
+
}
|
5281 |
+
|
5282 |
+
@media (min-width: 768px) {
|
5283 |
+
.navbar-nav {
|
5284 |
+
float: left;
|
5285 |
+
margin: 0
|
5286 |
+
}
|
5287 |
+
.navbar-nav>li {
|
5288 |
+
float: left
|
5289 |
+
}
|
5290 |
+
.navbar-nav>li>a {
|
5291 |
+
padding-top: 19.5px;
|
5292 |
+
padding-bottom: 19.5px
|
5293 |
+
}
|
5294 |
+
}
|
5295 |
+
|
5296 |
+
.navbar-form {
|
5297 |
+
margin-left: -15px;
|
5298 |
+
margin-right: -15px;
|
5299 |
+
padding: 10px 15px;
|
5300 |
+
border-top: 1px solid transparent;
|
5301 |
+
border-bottom: 1px solid transparent;
|
5302 |
+
-webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
|
5303 |
+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1);
|
5304 |
+
margin-top: 7.5px;
|
5305 |
+
margin-bottom: 7.5px
|
5306 |
+
}
|
5307 |
+
|
5308 |
+
@media (min-width: 768px) {
|
5309 |
+
.navbar-form .form-group {
|
5310 |
+
display: inline-block;
|
5311 |
+
margin-bottom: 0;
|
5312 |
+
vertical-align: middle
|
5313 |
+
}
|
5314 |
+
.navbar-form .form-control {
|
5315 |
+
display: inline-block;
|
5316 |
+
width: auto;
|
5317 |
+
vertical-align: middle
|
5318 |
+
}
|
5319 |
+
.navbar-form .form-control-static {
|
5320 |
+
display: inline-block
|
5321 |
+
}
|
5322 |
+
.navbar-form .input-group {
|
5323 |
+
display: inline-table;
|
5324 |
+
vertical-align: middle
|
5325 |
+
}
|
5326 |
+
.navbar-form .input-group .input-group-addon,
|
5327 |
+
.navbar-form .input-group .input-group-btn,
|
5328 |
+
.navbar-form .input-group .form-control {
|
5329 |
+
width: auto
|
5330 |
+
}
|
5331 |
+
.navbar-form .input-group>.form-control {
|
5332 |
+
width: 100%
|
5333 |
+
}
|
5334 |
+
.navbar-form .control-label {
|
5335 |
+
margin-bottom: 0;
|
5336 |
+
vertical-align: middle
|
5337 |
+
}
|
5338 |
+
.navbar-form .radio,
|
5339 |
+
.navbar-form .checkbox {
|
5340 |
+
display: inline-block;
|
5341 |
+
margin-top: 0;
|
5342 |
+
margin-bottom: 0;
|
5343 |
+
vertical-align: middle
|
5344 |
+
}
|
5345 |
+
.navbar-form .radio label,
|
5346 |
+
.navbar-form .checkbox label {
|
5347 |
+
padding-left: 0
|
5348 |
+
}
|
5349 |
+
.navbar-form .radio input[type="radio"],
|
5350 |
+
.navbar-form .checkbox input[type="checkbox"] {
|
5351 |
+
position: relative;
|
5352 |
+
margin-left: 0
|
5353 |
+
}
|
5354 |
+
.navbar-form .has-feedback .form-control-feedback {
|
5355 |
+
top: 0
|
5356 |
+
}
|
5357 |
+
}
|
5358 |
+
|
5359 |
+
@media (max-width: 767px) {
|
5360 |
+
.navbar-form .form-group {
|
5361 |
+
margin-bottom: 5px
|
5362 |
+
}
|
5363 |
+
.navbar-form .form-group:last-child {
|
5364 |
+
margin-bottom: 0
|
5365 |
+
}
|
5366 |
+
}
|
5367 |
+
|
5368 |
+
@media (min-width: 768px) {
|
5369 |
+
.navbar-form {
|
5370 |
+
width: auto;
|
5371 |
+
border: 0;
|
5372 |
+
margin-left: 0;
|
5373 |
+
margin-right: 0;
|
5374 |
+
padding-top: 0;
|
5375 |
+
padding-bottom: 0;
|
5376 |
+
-webkit-box-shadow: none;
|
5377 |
+
box-shadow: none
|
5378 |
+
}
|
5379 |
+
}
|
5380 |
+
|
5381 |
+
.navbar-nav>li>.dropdown-menu {
|
5382 |
+
margin-top: 0;
|
5383 |
+
border-top-right-radius: 0;
|
5384 |
+
border-top-left-radius: 0
|
5385 |
+
}
|
5386 |
+
|
5387 |
+
.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu {
|
5388 |
+
margin-bottom: 0;
|
5389 |
+
border-top-right-radius: 4px;
|
5390 |
+
border-top-left-radius: 4px;
|
5391 |
+
border-bottom-right-radius: 0;
|
5392 |
+
border-bottom-left-radius: 0
|
5393 |
+
}
|
5394 |
+
|
5395 |
+
.navbar-btn {
|
5396 |
+
margin-top: 7.5px;
|
5397 |
+
margin-bottom: 7.5px
|
5398 |
+
}
|
5399 |
+
|
5400 |
+
.navbar-btn.btn-sm {
|
5401 |
+
margin-top: 12.5px;
|
5402 |
+
margin-bottom: 12.5px
|
5403 |
+
}
|
5404 |
+
|
5405 |
+
.navbar-btn.btn-xs {
|
5406 |
+
margin-top: 19px;
|
5407 |
+
margin-bottom: 19px
|
5408 |
+
}
|
5409 |
+
|
5410 |
+
.navbar-text {
|
5411 |
+
margin-top: 19.5px;
|
5412 |
+
margin-bottom: 19.5px
|
5413 |
+
}
|
5414 |
+
|
5415 |
+
@media (min-width: 768px) {
|
5416 |
+
.navbar-text {
|
5417 |
+
float: left;
|
5418 |
+
margin-left: 15px;
|
5419 |
+
margin-right: 15px
|
5420 |
+
}
|
5421 |
+
}
|
5422 |
+
|
5423 |
+
@media (min-width: 768px) {
|
5424 |
+
.navbar-left {
|
5425 |
+
float: left !important
|
5426 |
+
}
|
5427 |
+
.navbar-right {
|
5428 |
+
float: right !important;
|
5429 |
+
margin-right: -15px
|
5430 |
+
}
|
5431 |
+
.navbar-right~.navbar-right {
|
5432 |
+
margin-right: 0
|
5433 |
+
}
|
5434 |
+
}
|
5435 |
+
|
5436 |
+
.navbar-default {
|
5437 |
+
background-color: #2c3e50;
|
5438 |
+
border-color: transparent
|
5439 |
+
}
|
5440 |
+
|
5441 |
+
.navbar-default .navbar-brand {
|
5442 |
+
color: #ffffff
|
5443 |
+
}
|
5444 |
+
|
5445 |
+
.navbar-default .navbar-brand:hover,
|
5446 |
+
.navbar-default .navbar-brand:focus {
|
5447 |
+
color: #18bc9c;
|
5448 |
+
background-color: transparent
|
5449 |
+
}
|
5450 |
+
|
5451 |
+
.navbar-default .navbar-text {
|
5452 |
+
color: #777777
|
5453 |
+
}
|
5454 |
+
|
5455 |
+
.navbar-default .navbar-nav>li>a {
|
5456 |
+
color: #ffffff
|
5457 |
+
}
|
5458 |
+
|
5459 |
+
.navbar-default .navbar-nav>li>a:hover,
|
5460 |
+
.navbar-default .navbar-nav>li>a:focus {
|
5461 |
+
color: #18bc9c;
|
5462 |
+
background-color: transparent
|
5463 |
+
}
|
5464 |
+
|
5465 |
+
.navbar-default .navbar-nav>.active>a,
|
5466 |
+
.navbar-default .navbar-nav>.active>a:hover,
|
5467 |
+
.navbar-default .navbar-nav>.active>a:focus {
|
5468 |
+
color: #ffffff;
|
5469 |
+
background-color: #1a242f
|
5470 |
+
}
|
5471 |
+
|
5472 |
+
.navbar-default .navbar-nav>.disabled>a,
|
5473 |
+
.navbar-default .navbar-nav>.disabled>a:hover,
|
5474 |
+
.navbar-default .navbar-nav>.disabled>a:focus {
|
5475 |
+
color: #cccccc;
|
5476 |
+
background-color: transparent
|
5477 |
+
}
|
5478 |
+
|
5479 |
+
.navbar-default .navbar-toggle {
|
5480 |
+
border-color: #1a242f
|
5481 |
+
}
|
5482 |
+
|
5483 |
+
.navbar-default .navbar-toggle:hover,
|
5484 |
+
.navbar-default .navbar-toggle:focus {
|
5485 |
+
background-color: #1a242f
|
5486 |
+
}
|
5487 |
+
|
5488 |
+
.navbar-default .navbar-toggle .icon-bar {
|
5489 |
+
background-color: #ffffff
|
5490 |
+
}
|
5491 |
+
|
5492 |
+
.navbar-default .navbar-collapse,
|
5493 |
+
.navbar-default .navbar-form {
|
5494 |
+
border-color: transparent
|
5495 |
+
}
|
5496 |
+
|
5497 |
+
.navbar-default .navbar-nav>.open>a,
|
5498 |
+
.navbar-default .navbar-nav>.open>a:hover,
|
5499 |
+
.navbar-default .navbar-nav>.open>a:focus {
|
5500 |
+
background-color: #1a242f;
|
5501 |
+
color: #ffffff
|
5502 |
+
}
|
5503 |
+
|
5504 |
+
@media (max-width: 767px) {
|
5505 |
+
.navbar-default .navbar-nav .open .dropdown-menu>li>a {
|
5506 |
+
color: #ffffff
|
5507 |
+
}
|
5508 |
+
.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,
|
5509 |
+
.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus {
|
5510 |
+
color: #18bc9c;
|
5511 |
+
background-color: transparent
|
5512 |
+
}
|
5513 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.active>a,
|
5514 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,
|
5515 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus {
|
5516 |
+
color: #ffffff;
|
5517 |
+
background-color: #1a242f
|
5518 |
+
}
|
5519 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,
|
5520 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,
|
5521 |
+
.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus {
|
5522 |
+
color: #cccccc;
|
5523 |
+
background-color: transparent
|
5524 |
+
}
|
5525 |
+
}
|
5526 |
+
|
5527 |
+
.navbar-default .navbar-link {
|
5528 |
+
color: #ffffff
|
5529 |
+
}
|
5530 |
+
|
5531 |
+
.navbar-default .navbar-link:hover {
|
5532 |
+
color: #18bc9c
|
5533 |
+
}
|
5534 |
+
|
5535 |
+
.navbar-default .btn-link {
|
5536 |
+
color: #ffffff
|
5537 |
+
}
|
5538 |
+
|
5539 |
+
.navbar-default .btn-link:hover,
|
5540 |
+
.navbar-default .btn-link:focus {
|
5541 |
+
color: #18bc9c
|
5542 |
+
}
|
5543 |
+
|
5544 |
+
.navbar-default .btn-link[disabled]:hover,
|
5545 |
+
fieldset[disabled] .navbar-default .btn-link:hover,
|
5546 |
+
.navbar-default .btn-link[disabled]:focus,
|
5547 |
+
fieldset[disabled] .navbar-default .btn-link:focus {
|
5548 |
+
color: #cccccc
|
5549 |
+
}
|
5550 |
+
|
5551 |
+
.navbar-inverse {
|
5552 |
+
background-color: #18bc9c;
|
5553 |
+
border-color: transparent
|
5554 |
+
}
|
5555 |
+
|
5556 |
+
.navbar-inverse .navbar-brand {
|
5557 |
+
color: #ffffff
|
5558 |
+
}
|
5559 |
+
|
5560 |
+
.navbar-inverse .navbar-brand:hover,
|
5561 |
+
.navbar-inverse .navbar-brand:focus {
|
5562 |
+
color: #2c3e50;
|
5563 |
+
background-color: transparent
|
5564 |
+
}
|
5565 |
+
|
5566 |
+
.navbar-inverse .navbar-text {
|
5567 |
+
color: #ffffff
|
5568 |
+
}
|
5569 |
+
|
5570 |
+
.navbar-inverse .navbar-nav>li>a {
|
5571 |
+
color: #ffffff
|
5572 |
+
}
|
5573 |
+
|
5574 |
+
.navbar-inverse .navbar-nav>li>a:hover,
|
5575 |
+
.navbar-inverse .navbar-nav>li>a:focus {
|
5576 |
+
color: #2c3e50;
|
5577 |
+
background-color: transparent
|
5578 |
+
}
|
5579 |
+
|
5580 |
+
.navbar-inverse .navbar-nav>.active>a,
|
5581 |
+
.navbar-inverse .navbar-nav>.active>a:hover,
|
5582 |
+
.navbar-inverse .navbar-nav>.active>a:focus {
|
5583 |
+
color: #ffffff;
|
5584 |
+
background-color: #15a589
|
5585 |
+
}
|
5586 |
+
|
5587 |
+
.navbar-inverse .navbar-nav>.disabled>a,
|
5588 |
+
.navbar-inverse .navbar-nav>.disabled>a:hover,
|
5589 |
+
.navbar-inverse .navbar-nav>.disabled>a:focus {
|
5590 |
+
color: #cccccc;
|
5591 |
+
background-color: transparent
|
5592 |
+
}
|
5593 |
+
|
5594 |
+
.navbar-inverse .navbar-toggle {
|
5595 |
+
border-color: #128f76
|
5596 |
+
}
|
5597 |
+
|
5598 |
+
.navbar-inverse .navbar-toggle:hover,
|
5599 |
+
.navbar-inverse .navbar-toggle:focus {
|
5600 |
+
background-color: #128f76
|
5601 |
+
}
|
5602 |
+
|
5603 |
+
.navbar-inverse .navbar-toggle .icon-bar {
|
5604 |
+
background-color: #ffffff
|
5605 |
+
}
|
5606 |
+
|
5607 |
+
.navbar-inverse .navbar-collapse,
|
5608 |
+
.navbar-inverse .navbar-form {
|
5609 |
+
border-color: #149c82
|
5610 |
+
}
|
5611 |
+
|
5612 |
+
.navbar-inverse .navbar-nav>.open>a,
|
5613 |
+
.navbar-inverse .navbar-nav>.open>a:hover,
|
5614 |
+
.navbar-inverse .navbar-nav>.open>a:focus {
|
5615 |
+
background-color: #15a589;
|
5616 |
+
color: #ffffff
|
5617 |
+
}
|
5618 |
+
|
5619 |
+
@media (max-width: 767px) {
|
5620 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header {
|
5621 |
+
border-color: transparent
|
5622 |
+
}
|
5623 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu .divider {
|
5624 |
+
background-color: transparent
|
5625 |
+
}
|
5626 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>li>a {
|
5627 |
+
color: #ffffff
|
5628 |
+
}
|
5629 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,
|
5630 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus {
|
5631 |
+
color: #2c3e50;
|
5632 |
+
background-color: transparent
|
5633 |
+
}
|
5634 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,
|
5635 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,
|
5636 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus {
|
5637 |
+
color: #ffffff;
|
5638 |
+
background-color: #15a589
|
5639 |
+
}
|
5640 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,
|
5641 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,
|
5642 |
+
.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus {
|
5643 |
+
color: #cccccc;
|
5644 |
+
background-color: transparent
|
5645 |
+
}
|
5646 |
+
}
|
5647 |
+
|
5648 |
+
.navbar-inverse .navbar-link {
|
5649 |
+
color: #ffffff
|
5650 |
+
}
|
5651 |
+
|
5652 |
+
.navbar-inverse .navbar-link:hover {
|
5653 |
+
color: #2c3e50
|
5654 |
+
}
|
5655 |
+
|
5656 |
+
.navbar-inverse .btn-link {
|
5657 |
+
color: #ffffff
|
5658 |
+
}
|
5659 |
+
|
5660 |
+
.navbar-inverse .btn-link:hover,
|
5661 |
+
.navbar-inverse .btn-link:focus {
|
5662 |
+
color: #2c3e50
|
5663 |
+
}
|
5664 |
+
|
5665 |
+
.navbar-inverse .btn-link[disabled]:hover,
|
5666 |
+
fieldset[disabled] .navbar-inverse .btn-link:hover,
|
5667 |
+
.navbar-inverse .btn-link[disabled]:focus,
|
5668 |
+
fieldset[disabled] .navbar-inverse .btn-link:focus {
|
5669 |
+
color: #cccccc
|
5670 |
+
}
|
5671 |
+
|
5672 |
+
.breadcrumb {
|
5673 |
+
padding: 8px 15px;
|
5674 |
+
margin-bottom: 21px;
|
5675 |
+
list-style: none;
|
5676 |
+
background-color: #ecf0f1;
|
5677 |
+
border-radius: 4px
|
5678 |
+
}
|
5679 |
+
|
5680 |
+
.breadcrumb>li {
|
5681 |
+
display: inline-block
|
5682 |
+
}
|
5683 |
+
|
5684 |
+
.breadcrumb>li+li:before {
|
5685 |
+
content: "/\00a0";
|
5686 |
+
padding: 0 5px;
|
5687 |
+
color: #cccccc
|
5688 |
+
}
|
5689 |
+
|
5690 |
+
.breadcrumb>.active {
|
5691 |
+
color: #95a5a6
|
5692 |
+
}
|
5693 |
+
|
5694 |
+
.pagination {
|
5695 |
+
display: inline-block;
|
5696 |
+
padding-left: 0;
|
5697 |
+
margin: 21px 0;
|
5698 |
+
border-radius: 4px
|
5699 |
+
}
|
5700 |
+
|
5701 |
+
.pagination>li {
|
5702 |
+
display: inline
|
5703 |
+
}
|
5704 |
+
|
5705 |
+
.pagination>li>a,
|
5706 |
+
.pagination>li>span {
|
5707 |
+
position: relative;
|
5708 |
+
float: left;
|
5709 |
+
padding: 10px 15px;
|
5710 |
+
line-height: 1.42857143;
|
5711 |
+
text-decoration: none;
|
5712 |
+
color: #ffffff;
|
5713 |
+
background-color: #18bc9c;
|
5714 |
+
border: 1px solid transparent;
|
5715 |
+
margin-left: -1px
|
5716 |
+
}
|
5717 |
+
|
5718 |
+
.pagination>li:first-child>a,
|
5719 |
+
.pagination>li:first-child>span {
|
5720 |
+
margin-left: 0;
|
5721 |
+
border-bottom-left-radius: 4px;
|
5722 |
+
border-top-left-radius: 4px
|
5723 |
+
}
|
5724 |
+
|
5725 |
+
.pagination>li:last-child>a,
|
5726 |
+
.pagination>li:last-child>span {
|
5727 |
+
border-bottom-right-radius: 4px;
|
5728 |
+
border-top-right-radius: 4px
|
5729 |
+
}
|
5730 |
+
|
5731 |
+
.pagination>li>a:hover,
|
5732 |
+
.pagination>li>span:hover,
|
5733 |
+
.pagination>li>a:focus,
|
5734 |
+
.pagination>li>span:focus {
|
5735 |
+
z-index: 3;
|
5736 |
+
color: #ffffff;
|
5737 |
+
background-color: #0f7864;
|
5738 |
+
border-color: transparent
|
5739 |
+
}
|
5740 |
+
|
5741 |
+
.pagination>.active>a,
|
5742 |
+
.pagination>.active>span,
|
5743 |
+
.pagination>.active>a:hover,
|
5744 |
+
.pagination>.active>span:hover,
|
5745 |
+
.pagination>.active>a:focus,
|
5746 |
+
.pagination>.active>span:focus {
|
5747 |
+
z-index: 2;
|
5748 |
+
color: #ffffff;
|
5749 |
+
background-color: #0f7864;
|
5750 |
+
border-color: transparent;
|
5751 |
+
cursor: default
|
5752 |
+
}
|
5753 |
+
|
5754 |
+
.pagination>.disabled>span,
|
5755 |
+
.pagination>.disabled>span:hover,
|
5756 |
+
.pagination>.disabled>span:focus,
|
5757 |
+
.pagination>.disabled>a,
|
5758 |
+
.pagination>.disabled>a:hover,
|
5759 |
+
.pagination>.disabled>a:focus {
|
5760 |
+
color: #ecf0f1;
|
5761 |
+
background-color: #3be6c4;
|
5762 |
+
border-color: transparent;
|
5763 |
+
cursor: not-allowed
|
5764 |
+
}
|
5765 |
+
|
5766 |
+
.pagination-lg>li>a,
|
5767 |
+
.pagination-lg>li>span {
|
5768 |
+
padding: 18px 27px;
|
5769 |
+
font-size: 19px;
|
5770 |
+
line-height: 1.3333333
|
5771 |
+
}
|
5772 |
+
|
5773 |
+
.pagination-lg>li:first-child>a,
|
5774 |
+
.pagination-lg>li:first-child>span {
|
5775 |
+
border-bottom-left-radius: 6px;
|
5776 |
+
border-top-left-radius: 6px
|
5777 |
+
}
|
5778 |
+
|
5779 |
+
.pagination-lg>li:last-child>a,
|
5780 |
+
.pagination-lg>li:last-child>span {
|
5781 |
+
border-bottom-right-radius: 6px;
|
5782 |
+
border-top-right-radius: 6px
|
5783 |
+
}
|
5784 |
+
|
5785 |
+
.pagination-sm>li>a,
|
5786 |
+
.pagination-sm>li>span {
|
5787 |
+
padding: 6px 9px;
|
5788 |
+
font-size: 13px;
|
5789 |
+
line-height: 1.5
|
5790 |
+
}
|
5791 |
+
|
5792 |
+
.pagination-sm>li:first-child>a,
|
5793 |
+
.pagination-sm>li:first-child>span {
|
5794 |
+
border-bottom-left-radius: 3px;
|
5795 |
+
border-top-left-radius: 3px
|
5796 |
+
}
|
5797 |
+
|
5798 |
+
.pagination-sm>li:last-child>a,
|
5799 |
+
.pagination-sm>li:last-child>span {
|
5800 |
+
border-bottom-right-radius: 3px;
|
5801 |
+
border-top-right-radius: 3px
|
5802 |
+
}
|
5803 |
+
|
5804 |
+
.pager {
|
5805 |
+
padding-left: 0;
|
5806 |
+
margin: 21px 0;
|
5807 |
+
list-style: none;
|
5808 |
+
text-align: center
|
5809 |
+
}
|
5810 |
+
|
5811 |
+
.pager li {
|
5812 |
+
display: inline
|
5813 |
+
}
|
5814 |
+
|
5815 |
+
.pager li>a,
|
5816 |
+
.pager li>span {
|
5817 |
+
display: inline-block;
|
5818 |
+
padding: 5px 14px;
|
5819 |
+
background-color: #18bc9c;
|
5820 |
+
border: 1px solid transparent;
|
5821 |
+
border-radius: 15px
|
5822 |
+
}
|
5823 |
+
|
5824 |
+
.pager li>a:hover,
|
5825 |
+
.pager li>a:focus {
|
5826 |
+
text-decoration: none;
|
5827 |
+
background-color: #0f7864
|
5828 |
+
}
|
5829 |
+
|
5830 |
+
.pager .next>a,
|
5831 |
+
.pager .next>span {
|
5832 |
+
float: right
|
5833 |
+
}
|
5834 |
+
|
5835 |
+
.pager .previous>a,
|
5836 |
+
.pager .previous>span {
|
5837 |
+
float: left
|
5838 |
+
}
|
5839 |
+
|
5840 |
+
.pager .disabled>a,
|
5841 |
+
.pager .disabled>a:hover,
|
5842 |
+
.pager .disabled>a:focus,
|
5843 |
+
.pager .disabled>span {
|
5844 |
+
color: #ffffff;
|
5845 |
+
background-color: #18bc9c;
|
5846 |
+
cursor: not-allowed
|
5847 |
+
}
|
5848 |
+
|
5849 |
+
.label {
|
5850 |
+
display: inline;
|
5851 |
+
padding: .2em .6em .3em;
|
5852 |
+
font-size: 75%;
|
5853 |
+
font-weight: bold;
|
5854 |
+
line-height: 1;
|
5855 |
+
color: #ffffff;
|
5856 |
+
text-align: center;
|
5857 |
+
white-space: nowrap;
|
5858 |
+
vertical-align: baseline;
|
5859 |
+
border-radius: .25em
|
5860 |
+
}
|
5861 |
+
|
5862 |
+
a.label:hover,
|
5863 |
+
a.label:focus {
|
5864 |
+
color: #ffffff;
|
5865 |
+
text-decoration: none;
|
5866 |
+
cursor: pointer
|
5867 |
+
}
|
5868 |
+
|
5869 |
+
.label:empty {
|
5870 |
+
display: none
|
5871 |
+
}
|
5872 |
+
|
5873 |
+
.btn .label {
|
5874 |
+
position: relative;
|
5875 |
+
top: -1px
|
5876 |
+
}
|
5877 |
+
|
5878 |
+
.label-default {
|
5879 |
+
background-color: #95a5a6
|
5880 |
+
}
|
5881 |
+
|
5882 |
+
.label-default[href]:hover,
|
5883 |
+
.label-default[href]:focus {
|
5884 |
+
background-color: #798d8f
|
5885 |
+
}
|
5886 |
+
|
5887 |
+
.label-primary {
|
5888 |
+
background-color: #2c3e50
|
5889 |
+
}
|
5890 |
+
|
5891 |
+
.label-primary[href]:hover,
|
5892 |
+
.label-primary[href]:focus {
|
5893 |
+
background-color: #1a242f
|
5894 |
+
}
|
5895 |
+
|
5896 |
+
.label-success {
|
5897 |
+
background-color: #18bc9c
|
5898 |
+
}
|
5899 |
+
|
5900 |
+
.label-success[href]:hover,
|
5901 |
+
.label-success[href]:focus {
|
5902 |
+
background-color: #128f76
|
5903 |
+
}
|
5904 |
+
|
5905 |
+
.label-info {
|
5906 |
+
background-color: #3498db
|
5907 |
+
}
|
5908 |
+
|
5909 |
+
.label-info[href]:hover,
|
5910 |
+
.label-info[href]:focus {
|
5911 |
+
background-color: #217dbb
|
5912 |
+
}
|
5913 |
+
|
5914 |
+
.label-warning {
|
5915 |
+
background-color: #f39c12
|
5916 |
+
}
|
5917 |
+
|
5918 |
+
.label-warning[href]:hover,
|
5919 |
+
.label-warning[href]:focus {
|
5920 |
+
background-color: #c87f0a
|
5921 |
+
}
|
5922 |
+
|
5923 |
+
.label-danger {
|
5924 |
+
background-color: #e74c3c
|
5925 |
+
}
|
5926 |
+
|
5927 |
+
.label-danger[href]:hover,
|
5928 |
+
.label-danger[href]:focus {
|
5929 |
+
background-color: #d62c1a
|
5930 |
+
}
|
5931 |
+
|
5932 |
+
.badge {
|
5933 |
+
display: inline-block;
|
5934 |
+
min-width: 10px;
|
5935 |
+
padding: 3px 7px;
|
5936 |
+
font-size: 13px;
|
5937 |
+
font-weight: bold;
|
5938 |
+
color: #ffffff;
|
5939 |
+
line-height: 1;
|
5940 |
+
vertical-align: middle;
|
5941 |
+
white-space: nowrap;
|
5942 |
+
text-align: center;
|
5943 |
+
background-color: #2c3e50;
|
5944 |
+
border-radius: 10px
|
5945 |
+
}
|
5946 |
+
|
5947 |
+
.badge:empty {
|
5948 |
+
display: none
|
5949 |
+
}
|
5950 |
+
|
5951 |
+
.btn .badge {
|
5952 |
+
position: relative;
|
5953 |
+
top: -1px
|
5954 |
+
}
|
5955 |
+
|
5956 |
+
.btn-xs .badge,
|
5957 |
+
.btn-group-xs>.btn .badge {
|
5958 |
+
top: 0;
|
5959 |
+
padding: 1px 5px
|
5960 |
+
}
|
5961 |
+
|
5962 |
+
a.badge:hover,
|
5963 |
+
a.badge:focus {
|
5964 |
+
color: #ffffff;
|
5965 |
+
text-decoration: none;
|
5966 |
+
cursor: pointer
|
5967 |
+
}
|
5968 |
+
|
5969 |
+
.list-group-item.active>.badge,
|
5970 |
+
.nav-pills>.active>a>.badge {
|
5971 |
+
color: #2c3e50;
|
5972 |
+
background-color: #ffffff
|
5973 |
+
}
|
5974 |
+
|
5975 |
+
.list-group-item>.badge {
|
5976 |
+
float: right
|
5977 |
+
}
|
5978 |
+
|
5979 |
+
.list-group-item>.badge+.badge {
|
5980 |
+
margin-right: 5px
|
5981 |
+
}
|
5982 |
+
|
5983 |
+
.nav-pills>li>a>.badge {
|
5984 |
+
margin-left: 3px
|
5985 |
+
}
|
5986 |
+
|
5987 |
+
.jumbotron {
|
5988 |
+
padding-top: 30px;
|
5989 |
+
padding-bottom: 30px;
|
5990 |
+
margin-bottom: 30px;
|
5991 |
+
color: inherit;
|
5992 |
+
background-color: #ecf0f1
|
5993 |
+
}
|
5994 |
+
|
5995 |
+
.jumbotron h1,
|
5996 |
+
.jumbotron .h1 {
|
5997 |
+
color: inherit
|
5998 |
+
}
|
5999 |
+
|
6000 |
+
.jumbotron p {
|
6001 |
+
margin-bottom: 15px;
|
6002 |
+
font-size: 23px;
|
6003 |
+
font-weight: 200
|
6004 |
+
}
|
6005 |
+
|
6006 |
+
.jumbotron>hr {
|
6007 |
+
border-top-color: #cfd9db
|
6008 |
+
}
|
6009 |
+
|
6010 |
+
.container .jumbotron,
|
6011 |
+
.container-fluid .jumbotron {
|
6012 |
+
border-radius: 6px
|
6013 |
+
}
|
6014 |
+
|
6015 |
+
.jumbotron .container {
|
6016 |
+
max-width: 100%
|
6017 |
+
}
|
6018 |
+
|
6019 |
+
@media screen and (min-width: 768px) {
|
6020 |
+
.jumbotron {
|
6021 |
+
padding-top: 48px;
|
6022 |
+
padding-bottom: 48px
|
6023 |
+
}
|
6024 |
+
.container .jumbotron,
|
6025 |
+
.container-fluid .jumbotron {
|
6026 |
+
padding-left: 60px;
|
6027 |
+
padding-right: 60px
|
6028 |
+
}
|
6029 |
+
.jumbotron h1,
|
6030 |
+
.jumbotron .h1 {
|
6031 |
+
font-size: 68px
|
6032 |
+
}
|
6033 |
+
}
|
6034 |
+
|
6035 |
+
.thumbnail {
|
6036 |
+
display: block;
|
6037 |
+
padding: 4px;
|
6038 |
+
margin-bottom: 21px;
|
6039 |
+
line-height: 1.42857143;
|
6040 |
+
background-color: #ffffff;
|
6041 |
+
border: 1px solid #ecf0f1;
|
6042 |
+
border-radius: 4px;
|
6043 |
+
-webkit-transition: border .2s ease-in-out;
|
6044 |
+
-o-transition: border .2s ease-in-out;
|
6045 |
+
transition: border .2s ease-in-out
|
6046 |
+
}
|
6047 |
+
|
6048 |
+
.thumbnail>img,
|
6049 |
+
.thumbnail a>img {
|
6050 |
+
margin-left: auto;
|
6051 |
+
margin-right: auto
|
6052 |
+
}
|
6053 |
+
|
6054 |
+
a.thumbnail:hover,
|
6055 |
+
a.thumbnail:focus,
|
6056 |
+
a.thumbnail.active {
|
6057 |
+
border-color: #18bc9c
|
6058 |
+
}
|
6059 |
+
|
6060 |
+
.thumbnail .caption {
|
6061 |
+
padding: 9px;
|
6062 |
+
color: #2c3e50
|
6063 |
+
}
|
6064 |
+
|
6065 |
+
.alert {
|
6066 |
+
padding: 10px;
|
6067 |
+
margin-bottom: 21px;
|
6068 |
+
}
|
6069 |
+
|
6070 |
+
.alert h4 {
|
6071 |
+
margin-top: 0;
|
6072 |
+
color: inherit
|
6073 |
+
}
|
6074 |
+
|
6075 |
+
.alert .alert-link {
|
6076 |
+
font-weight: bold
|
6077 |
+
}
|
6078 |
+
|
6079 |
+
.alert>p,
|
6080 |
+
.alert>ul {
|
6081 |
+
margin-bottom: 0
|
6082 |
+
}
|
6083 |
+
|
6084 |
+
.alert>p+p {
|
6085 |
+
margin-top: 5px
|
6086 |
+
}
|
6087 |
+
|
6088 |
+
.alert-dismissable,
|
6089 |
+
.alert-dismissible {
|
6090 |
+
padding-right: 35px
|
6091 |
+
}
|
6092 |
+
|
6093 |
+
.alert-dismissable .close,
|
6094 |
+
.alert-dismissible .close {
|
6095 |
+
position: relative;
|
6096 |
+
top: -2px;
|
6097 |
+
right: -21px;
|
6098 |
+
color: inherit
|
6099 |
+
}
|
6100 |
+
|
6101 |
+
.alert-success {
|
6102 |
+
background-color: #18bc9c;
|
6103 |
+
border-color: #18bc9c;
|
6104 |
+
color: #ffffff
|
6105 |
+
}
|
6106 |
+
|
6107 |
+
.alert-success hr {
|
6108 |
+
border-top-color: #15a589
|
6109 |
+
}
|
6110 |
+
|
6111 |
+
.alert-success .alert-link {
|
6112 |
+
color: #e6e6e6
|
6113 |
+
}
|
6114 |
+
|
6115 |
+
.alert-info {
|
6116 |
+
background-color: #3498db;
|
6117 |
+
border-color: #3498db;
|
6118 |
+
color: #ffffff
|
6119 |
+
}
|
6120 |
+
|
6121 |
+
.alert-info hr {
|
6122 |
+
border-top-color: #258cd1
|
6123 |
+
}
|
6124 |
+
|
6125 |
+
.alert-info .alert-link {
|
6126 |
+
color: #e6e6e6
|
6127 |
+
}
|
6128 |
+
|
6129 |
+
.alert-warning {
|
6130 |
+
background-color: #f39c12;
|
6131 |
+
border-color: #f39c12;
|
6132 |
+
color: #ffffff
|
6133 |
+
}
|
6134 |
+
|
6135 |
+
.alert-warning hr {
|
6136 |
+
border-top-color: #e08e0b
|
6137 |
+
}
|
6138 |
+
|
6139 |
+
.alert-warning .alert-link {
|
6140 |
+
color: #e6e6e6
|
6141 |
+
}
|
6142 |
+
|
6143 |
+
.alert-danger {
|
6144 |
+
background-color: #e74c3c;
|
6145 |
+
border-color: #e74c3c;
|
6146 |
+
color: #ffffff
|
6147 |
+
}
|
6148 |
+
|
6149 |
+
.alert-danger hr {
|
6150 |
+
border-top-color: #e43725
|
6151 |
+
}
|
6152 |
+
|
6153 |
+
.alert-danger .alert-link {
|
6154 |
+
color: #e6e6e6
|
6155 |
+
}
|
6156 |
+
|
6157 |
+
@-webkit-keyframes progress-bar-stripes {
|
6158 |
+
from {
|
6159 |
+
background-position: 40px 0
|
6160 |
+
}
|
6161 |
+
to {
|
6162 |
+
background-position: 0 0
|
6163 |
+
}
|
6164 |
+
}
|
6165 |
+
|
6166 |
+
@-o-keyframes progress-bar-stripes {
|
6167 |
+
from {
|
6168 |
+
background-position: 40px 0
|
6169 |
+
}
|
6170 |
+
to {
|
6171 |
+
background-position: 0 0
|
6172 |
+
}
|
6173 |
+
}
|
6174 |
+
|
6175 |
+
@keyframes progress-bar-stripes {
|
6176 |
+
from {
|
6177 |
+
background-position: 40px 0
|
6178 |
+
}
|
6179 |
+
to {
|
6180 |
+
background-position: 0 0
|
6181 |
+
}
|
6182 |
+
}
|
6183 |
+
|
6184 |
+
.progress {
|
6185 |
+
overflow: hidden;
|
6186 |
+
height: 21px;
|
6187 |
+
margin-bottom: 21px;
|
6188 |
+
background-color: #ecf0f1;
|
6189 |
+
border-radius: 4px;
|
6190 |
+
-webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1);
|
6191 |
+
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1)
|
6192 |
+
}
|
6193 |
+
|
6194 |
+
.progress-bar {
|
6195 |
+
float: left;
|
6196 |
+
width: 0%;
|
6197 |
+
height: 100%;
|
6198 |
+
font-size: 13px;
|
6199 |
+
line-height: 21px;
|
6200 |
+
color: #ffffff;
|
6201 |
+
text-align: center;
|
6202 |
+
background-color: #2c3e50;
|
6203 |
+
-webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
6204 |
+
box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15);
|
6205 |
+
-webkit-transition: width 0.6s ease;
|
6206 |
+
-o-transition: width 0.6s ease;
|
6207 |
+
transition: width 0.6s ease
|
6208 |
+
}
|
6209 |
+
|
6210 |
+
.progress-striped .progress-bar,
|
6211 |
+
.progress-bar-striped {
|
6212 |
+
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
6213 |
+
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
6214 |
+
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
6215 |
+
-webkit-background-size: 40px 40px;
|
6216 |
+
background-size: 40px 40px
|
6217 |
+
}
|
6218 |
+
|
6219 |
+
.progress.active .progress-bar,
|
6220 |
+
.progress-bar.active {
|
6221 |
+
-webkit-animation: progress-bar-stripes 2s linear infinite;
|
6222 |
+
-o-animation: progress-bar-stripes 2s linear infinite;
|
6223 |
+
animation: progress-bar-stripes 2s linear infinite
|
6224 |
+
}
|
6225 |
+
|
6226 |
+
.progress-bar-success {
|
6227 |
+
background-color: #18bc9c
|
6228 |
+
}
|
6229 |
+
|
6230 |
+
.progress-striped .progress-bar-success {
|
6231 |
+
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
6232 |
+
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
6233 |
+
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent)
|
6234 |
+
}
|
6235 |
+
|
6236 |
+
.progress-bar-info {
|
6237 |
+
background-color: #3498db
|
6238 |
+
}
|
6239 |
+
|
6240 |
+
.progress-striped .progress-bar-info {
|
6241 |
+
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
6242 |
+
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
6243 |
+
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent)
|
6244 |
+
}
|
6245 |
+
|
6246 |
+
.progress-bar-warning {
|
6247 |
+
background-color: #f39c12
|
6248 |
+
}
|
6249 |
+
|
6250 |
+
.progress-striped .progress-bar-warning {
|
6251 |
+
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
6252 |
+
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
6253 |
+
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent)
|
6254 |
+
}
|
6255 |
+
|
6256 |
+
.progress-bar-danger {
|
6257 |
+
background-color: #e74c3c
|
6258 |
+
}
|
6259 |
+
|
6260 |
+
.progress-striped .progress-bar-danger {
|
6261 |
+
background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
6262 |
+
background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent);
|
6263 |
+
background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent)
|
6264 |
+
}
|
6265 |
+
|
6266 |
+
.media {
|
6267 |
+
margin-top: 15px
|
6268 |
+
}
|
6269 |
+
|
6270 |
+
.media:first-child {
|
6271 |
+
margin-top: 0
|
6272 |
+
}
|
6273 |
+
|
6274 |
+
.media,
|
6275 |
+
.media-body {
|
6276 |
+
zoom: 1;
|
6277 |
+
overflow: hidden
|
6278 |
+
}
|
6279 |
+
|
6280 |
+
.media-body {
|
6281 |
+
width: 10000px
|
6282 |
+
}
|
6283 |
+
|
6284 |
+
.media-object {
|
6285 |
+
display: block
|
6286 |
+
}
|
6287 |
+
|
6288 |
+
.media-object.img-thumbnail {
|
6289 |
+
max-width: none
|
6290 |
+
}
|
6291 |
+
|
6292 |
+
.media-right,
|
6293 |
+
.media>.pull-right {
|
6294 |
+
padding-left: 10px
|
6295 |
+
}
|
6296 |
+
|
6297 |
+
.media-left,
|
6298 |
+
.media>.pull-left {
|
6299 |
+
padding-right: 10px
|
6300 |
+
}
|
6301 |
+
|
6302 |
+
.media-left,
|
6303 |
+
.media-right,
|
6304 |
+
.media-body {
|
6305 |
+
display: table-cell;
|
6306 |
+
vertical-align: top
|
6307 |
+
}
|
6308 |
+
|
6309 |
+
.media-middle {
|
6310 |
+
vertical-align: middle
|
6311 |
+
}
|
6312 |
+
|
6313 |
+
.media-bottom {
|
6314 |
+
vertical-align: bottom
|
6315 |
+
}
|
6316 |
+
|
6317 |
+
.media-heading {
|
6318 |
+
margin-top: 0;
|
6319 |
+
margin-bottom: 5px
|
6320 |
+
}
|
6321 |
+
|
6322 |
+
.media-list {
|
6323 |
+
padding-left: 0;
|
6324 |
+
list-style: none
|
6325 |
+
}
|
6326 |
+
|
6327 |
+
.list-group {
|
6328 |
+
margin-bottom: 20px;
|
6329 |
+
padding-left: 0
|
6330 |
+
}
|
6331 |
+
|
6332 |
+
.list-group-item {
|
6333 |
+
position: relative;
|
6334 |
+
display: block;
|
6335 |
+
padding: 10px 15px;
|
6336 |
+
margin-bottom: -1px;
|
6337 |
+
background-color: #ffffff;
|
6338 |
+
border: 1px solid #ecf0f1
|
6339 |
+
}
|
6340 |
+
|
6341 |
+
.list-group-item:first-child {
|
6342 |
+
border-top-right-radius: 4px;
|
6343 |
+
border-top-left-radius: 4px
|
6344 |
+
}
|
6345 |
+
|
6346 |
+
.list-group-item:last-child {
|
6347 |
+
margin-bottom: 0;
|
6348 |
+
border-bottom-right-radius: 4px;
|
6349 |
+
border-bottom-left-radius: 4px
|
6350 |
+
}
|
6351 |
+
|
6352 |
+
a.list-group-item,
|
6353 |
+
button.list-group-item {
|
6354 |
+
color: #555555
|
6355 |
+
}
|
6356 |
+
|
6357 |
+
a.list-group-item .list-group-item-heading,
|
6358 |
+
button.list-group-item .list-group-item-heading {
|
6359 |
+
color: #333333
|
6360 |
+
}
|
6361 |
+
|
6362 |
+
a.list-group-item:hover,
|
6363 |
+
button.list-group-item:hover,
|
6364 |
+
a.list-group-item:focus,
|
6365 |
+
button.list-group-item:focus {
|
6366 |
+
text-decoration: none;
|
6367 |
+
color: #555555;
|
6368 |
+
background-color: #ecf0f1
|
6369 |
+
}
|
6370 |
+
|
6371 |
+
button.list-group-item {
|
6372 |
+
width: 100%;
|
6373 |
+
text-align: left
|
6374 |
+
}
|
6375 |
+
|
6376 |
+
.list-group-item.disabled,
|
6377 |
+
.list-group-item.disabled:hover,
|
6378 |
+
.list-group-item.disabled:focus {
|
6379 |
+
background-color: #ecf0f1;
|
6380 |
+
color: #b4bcc2;
|
6381 |
+
cursor: not-allowed
|
6382 |
+
}
|
6383 |
+
|
6384 |
+
.list-group-item.disabled .list-group-item-heading,
|
6385 |
+
.list-group-item.disabled:hover .list-group-item-heading,
|
6386 |
+
.list-group-item.disabled:focus .list-group-item-heading {
|
6387 |
+
color: inherit
|
6388 |
+
}
|
6389 |
+
|
6390 |
+
.list-group-item.disabled .list-group-item-text,
|
6391 |
+
.list-group-item.disabled:hover .list-group-item-text,
|
6392 |
+
.list-group-item.disabled:focus .list-group-item-text {
|
6393 |
+
color: #b4bcc2
|
6394 |
+
}
|
6395 |
+
|
6396 |
+
.list-group-item.active,
|
6397 |
+
.list-group-item.active:hover,
|
6398 |
+
.list-group-item.active:focus {
|
6399 |
+
z-index: 2;
|
6400 |
+
color: #ffffff;
|
6401 |
+
background-color: #2c3e50;
|
6402 |
+
border-color: #2c3e50
|
6403 |
+
}
|
6404 |
+
|
6405 |
+
.list-group-item.active .list-group-item-heading,
|
6406 |
+
.list-group-item.active:hover .list-group-item-heading,
|
6407 |
+
.list-group-item.active:focus .list-group-item-heading,
|
6408 |
+
.list-group-item.active .list-group-item-heading>small,
|
6409 |
+
.list-group-item.active:hover .list-group-item-heading>small,
|
6410 |
+
.list-group-item.active:focus .list-group-item-heading>small,
|
6411 |
+
.list-group-item.active .list-group-item-heading>.small,
|
6412 |
+
.list-group-item.active:hover .list-group-item-heading>.small,
|
6413 |
+
.list-group-item.active:focus .list-group-item-heading>.small {
|
6414 |
+
color: inherit
|
6415 |
+
}
|
6416 |
+
|
6417 |
+
.list-group-item.active .list-group-item-text,
|
6418 |
+
.list-group-item.active:hover .list-group-item-text,
|
6419 |
+
.list-group-item.active:focus .list-group-item-text {
|
6420 |
+
color: #8aa4be
|
6421 |
+
}
|
6422 |
+
|
6423 |
+
.list-group-item-success {
|
6424 |
+
color: #ffffff;
|
6425 |
+
background-color: #18bc9c
|
6426 |
+
}
|
6427 |
+
|
6428 |
+
a.list-group-item-success,
|
6429 |
+
button.list-group-item-success {
|
6430 |
+
color: #ffffff
|
6431 |
+
}
|
6432 |
+
|
6433 |
+
a.list-group-item-success .list-group-item-heading,
|
6434 |
+
button.list-group-item-success .list-group-item-heading {
|
6435 |
+
color: inherit
|
6436 |
+
}
|
6437 |
+
|
6438 |
+
a.list-group-item-success:hover,
|
6439 |
+
button.list-group-item-success:hover,
|
6440 |
+
a.list-group-item-success:focus,
|
6441 |
+
button.list-group-item-success:focus {
|
6442 |
+
color: #ffffff;
|
6443 |
+
background-color: #15a589
|
6444 |
+
}
|
6445 |
+
|
6446 |
+
a.list-group-item-success.active,
|
6447 |
+
button.list-group-item-success.active,
|
6448 |
+
a.list-group-item-success.active:hover,
|
6449 |
+
button.list-group-item-success.active:hover,
|
6450 |
+
a.list-group-item-success.active:focus,
|
6451 |
+
button.list-group-item-success.active:focus {
|
6452 |
+
color: #fff;
|
6453 |
+
background-color: #ffffff;
|
6454 |
+
border-color: #ffffff
|
6455 |
+
}
|
6456 |
+
|
6457 |
+
.list-group-item-info {
|
6458 |
+
color: #ffffff;
|
6459 |
+
background-color: #3498db
|
6460 |
+
}
|
6461 |
+
|
6462 |
+
a.list-group-item-info,
|
6463 |
+
button.list-group-item-info {
|
6464 |
+
color: #ffffff
|
6465 |
+
}
|
6466 |
+
|
6467 |
+
a.list-group-item-info .list-group-item-heading,
|
6468 |
+
button.list-group-item-info .list-group-item-heading {
|
6469 |
+
color: inherit
|
6470 |
+
}
|
6471 |
+
|
6472 |
+
a.list-group-item-info:hover,
|
6473 |
+
button.list-group-item-info:hover,
|
6474 |
+
a.list-group-item-info:focus,
|
6475 |
+
button.list-group-item-info:focus {
|
6476 |
+
color: #ffffff;
|
6477 |
+
background-color: #258cd1
|
6478 |
+
}
|
6479 |
+
|
6480 |
+
a.list-group-item-info.active,
|
6481 |
+
button.list-group-item-info.active,
|
6482 |
+
a.list-group-item-info.active:hover,
|
6483 |
+
button.list-group-item-info.active:hover,
|
6484 |
+
a.list-group-item-info.active:focus,
|
6485 |
+
button.list-group-item-info.active:focus {
|
6486 |
+
color: #fff;
|
6487 |
+
background-color: #ffffff;
|
6488 |
+
border-color: #ffffff
|
6489 |
+
}
|
6490 |
+
|
6491 |
+
.list-group-item-warning {
|
6492 |
+
color: #ffffff;
|
6493 |
+
background-color: #f39c12
|
6494 |
+
}
|
6495 |
+
|
6496 |
+
a.list-group-item-warning,
|
6497 |
+
button.list-group-item-warning {
|
6498 |
+
color: #ffffff
|
6499 |
+
}
|
6500 |
+
|
6501 |
+
a.list-group-item-warning .list-group-item-heading,
|
6502 |
+
button.list-group-item-warning .list-group-item-heading {
|
6503 |
+
color: inherit
|
6504 |
+
}
|
6505 |
+
|
6506 |
+
a.list-group-item-warning:hover,
|
6507 |
+
button.list-group-item-warning:hover,
|
6508 |
+
a.list-group-item-warning:focus,
|
6509 |
+
button.list-group-item-warning:focus {
|
6510 |
+
color: #ffffff;
|
6511 |
+
background-color: #e08e0b
|
6512 |
+
}
|
6513 |
+
|
6514 |
+
a.list-group-item-warning.active,
|
6515 |
+
button.list-group-item-warning.active,
|
6516 |
+
a.list-group-item-warning.active:hover,
|
6517 |
+
button.list-group-item-warning.active:hover,
|
6518 |
+
a.list-group-item-warning.active:focus,
|
6519 |
+
button.list-group-item-warning.active:focus {
|
6520 |
+
color: #fff;
|
6521 |
+
background-color: #ffffff;
|
6522 |
+
border-color: #ffffff
|
6523 |
+
}
|
6524 |
+
|
6525 |
+
.list-group-item-danger {
|
6526 |
+
color: #ffffff;
|
6527 |
+
background-color: #e74c3c
|
6528 |
+
}
|
6529 |
+
|
6530 |
+
a.list-group-item-danger,
|
6531 |
+
button.list-group-item-danger {
|
6532 |
+
color: #ffffff
|
6533 |
+
}
|
6534 |
+
|
6535 |
+
a.list-group-item-danger .list-group-item-heading,
|
6536 |
+
button.list-group-item-danger .list-group-item-heading {
|
6537 |
+
color: inherit
|
6538 |
+
}
|
6539 |
+
|
6540 |
+
a.list-group-item-danger:hover,
|
6541 |
+
button.list-group-item-danger:hover,
|
6542 |
+
a.list-group-item-danger:focus,
|
6543 |
+
button.list-group-item-danger:focus {
|
6544 |
+
color: #ffffff;
|
6545 |
+
background-color: #e43725
|
6546 |
+
}
|
6547 |
+
|
6548 |
+
a.list-group-item-danger.active,
|
6549 |
+
button.list-group-item-danger.active,
|
6550 |
+
a.list-group-item-danger.active:hover,
|
6551 |
+
button.list-group-item-danger.active:hover,
|
6552 |
+
a.list-group-item-danger.active:focus,
|
6553 |
+
button.list-group-item-danger.active:focus {
|
6554 |
+
color: #fff;
|
6555 |
+
background-color: #ffffff;
|
6556 |
+
border-color: #ffffff
|
6557 |
+
}
|
6558 |
+
|
6559 |
+
.list-group-item-heading {
|
6560 |
+
margin-top: 0;
|
6561 |
+
margin-bottom: 5px
|
6562 |
+
}
|
6563 |
+
|
6564 |
+
.list-group-item-text {
|
6565 |
+
margin-bottom: 0;
|
6566 |
+
line-height: 1.3
|
6567 |
+
}
|
6568 |
+
|
6569 |
+
.panel {
|
6570 |
+
margin-bottom: 21px;
|
6571 |
+
background-color: #ffffff;
|
6572 |
+
border: 1px solid transparent;
|
6573 |
+
border-radius: 4px;
|
6574 |
+
-webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05);
|
6575 |
+
box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05)
|
6576 |
+
}
|
6577 |
+
|
6578 |
+
.panel-body {
|
6579 |
+
padding: 15px
|
6580 |
+
}
|
6581 |
+
|
6582 |
+
.panel-heading {
|
6583 |
+
padding: 10px 15px;
|
6584 |
+
border-bottom: 1px solid transparent;
|
6585 |
+
border-top-right-radius: 3px;
|
6586 |
+
border-top-left-radius: 3px
|
6587 |
+
}
|
6588 |
+
|
6589 |
+
.panel-heading>.dropdown .dropdown-toggle {
|
6590 |
+
color: inherit
|
6591 |
+
}
|
6592 |
+
|
6593 |
+
.panel-title {
|
6594 |
+
margin-top: 0;
|
6595 |
+
margin-bottom: 0;
|
6596 |
+
font-size: 17px;
|
6597 |
+
color: inherit
|
6598 |
+
}
|
6599 |
+
|
6600 |
+
.panel-title>a,
|
6601 |
+
.panel-title>small,
|
6602 |
+
.panel-title>.small,
|
6603 |
+
.panel-title>small>a,
|
6604 |
+
.panel-title>.small>a {
|
6605 |
+
color: inherit
|
6606 |
+
}
|
6607 |
+
|
6608 |
+
.panel-footer {
|
6609 |
+
padding: 10px 15px;
|
6610 |
+
background-color: #ecf0f1;
|
6611 |
+
border-top: 1px solid #ecf0f1;
|
6612 |
+
border-bottom-right-radius: 3px;
|
6613 |
+
border-bottom-left-radius: 3px
|
6614 |
+
}
|
6615 |
+
|
6616 |
+
.panel>.list-group,
|
6617 |
+
.panel>.panel-collapse>.list-group {
|
6618 |
+
margin-bottom: 0
|
6619 |
+
}
|
6620 |
+
|
6621 |
+
.panel>.list-group .list-group-item,
|
6622 |
+
.panel>.panel-collapse>.list-group .list-group-item {
|
6623 |
+
border-width: 1px 0;
|
6624 |
+
border-radius: 0
|
6625 |
+
}
|
6626 |
+
|
6627 |
+
.panel>.list-group:first-child .list-group-item:first-child,
|
6628 |
+
.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child {
|
6629 |
+
border-top: 0;
|
6630 |
+
border-top-right-radius: 3px;
|
6631 |
+
border-top-left-radius: 3px
|
6632 |
+
}
|
6633 |
+
|
6634 |
+
.panel>.list-group:last-child .list-group-item:last-child,
|
6635 |
+
.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child {
|
6636 |
+
border-bottom: 0;
|
6637 |
+
border-bottom-right-radius: 3px;
|
6638 |
+
border-bottom-left-radius: 3px
|
6639 |
+
}
|
6640 |
+
|
6641 |
+
.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child {
|
6642 |
+
border-top-right-radius: 0;
|
6643 |
+
border-top-left-radius: 0
|
6644 |
+
}
|
6645 |
+
|
6646 |
+
.panel-heading+.list-group .list-group-item:first-child {
|
6647 |
+
border-top-width: 0
|
6648 |
+
}
|
6649 |
+
|
6650 |
+
.list-group+.panel-footer {
|
6651 |
+
border-top-width: 0
|
6652 |
+
}
|
6653 |
+
|
6654 |
+
.panel>.table,
|
6655 |
+
.panel>.table-responsive>.table,
|
6656 |
+
.panel>.panel-collapse>.table {
|
6657 |
+
margin-bottom: 0
|
6658 |
+
}
|
6659 |
+
|
6660 |
+
.panel>.table caption,
|
6661 |
+
.panel>.table-responsive>.table caption,
|
6662 |
+
.panel>.panel-collapse>.table caption {
|
6663 |
+
padding-left: 15px;
|
6664 |
+
padding-right: 15px
|
6665 |
+
}
|
6666 |
+
|
6667 |
+
.panel>.table:first-child,
|
6668 |
+
.panel>.table-responsive:first-child>.table:first-child {
|
6669 |
+
border-top-right-radius: 3px;
|
6670 |
+
border-top-left-radius: 3px
|
6671 |
+
}
|
6672 |
+
|
6673 |
+
.panel>.table:first-child>thead:first-child>tr:first-child,
|
6674 |
+
.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,
|
6675 |
+
.panel>.table:first-child>tbody:first-child>tr:first-child,
|
6676 |
+
.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child {
|
6677 |
+
border-top-left-radius: 3px;
|
6678 |
+
border-top-right-radius: 3px
|
6679 |
+
}
|
6680 |
+
|
6681 |
+
.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,
|
6682 |
+
.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,
|
6683 |
+
.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,
|
6684 |
+
.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,
|
6685 |
+
.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,
|
6686 |
+
.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,
|
6687 |
+
.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,
|
6688 |
+
.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child {
|
6689 |
+
border-top-left-radius: 3px
|
6690 |
+
}
|
6691 |
+
|
6692 |
+
.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,
|
6693 |
+
.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,
|
6694 |
+
.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,
|
6695 |
+
.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,
|
6696 |
+
.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,
|
6697 |
+
.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,
|
6698 |
+
.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,
|
6699 |
+
.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child {
|
6700 |
+
border-top-right-radius: 3px
|
6701 |
+
}
|
6702 |
+
|
6703 |
+
.panel>.table:last-child,
|
6704 |
+
.panel>.table-responsive:last-child>.table:last-child {
|
6705 |
+
border-bottom-right-radius: 3px;
|
6706 |
+
border-bottom-left-radius: 3px
|
6707 |
+
}
|
6708 |
+
|
6709 |
+
.panel>.table:last-child>tbody:last-child>tr:last-child,
|
6710 |
+
.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,
|
6711 |
+
.panel>.table:last-child>tfoot:last-child>tr:last-child,
|
6712 |
+
.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child {
|
6713 |
+
border-bottom-left-radius: 3px;
|
6714 |
+
border-bottom-right-radius: 3px
|
6715 |
+
}
|
6716 |
+
|
6717 |
+
.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,
|
6718 |
+
.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,
|
6719 |
+
.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,
|
6720 |
+
.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,
|
6721 |
+
.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,
|
6722 |
+
.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,
|
6723 |
+
.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,
|
6724 |
+
.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child {
|
6725 |
+
border-bottom-left-radius: 3px
|
6726 |
+
}
|
6727 |
+
|
6728 |
+
.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,
|
6729 |
+
.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,
|
6730 |
+
.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,
|
6731 |
+
.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,
|
6732 |
+
.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,
|
6733 |
+
.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,
|
6734 |
+
.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,
|
6735 |
+
.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child {
|
6736 |
+
border-bottom-right-radius: 3px
|
6737 |
+
}
|
6738 |
+
|
6739 |
+
.panel>.panel-body+.table,
|
6740 |
+
.panel>.panel-body+.table-responsive,
|
6741 |
+
.panel>.table+.panel-body,
|
6742 |
+
.panel>.table-responsive+.panel-body {
|
6743 |
+
border-top: 1px solid #ecf0f1
|
6744 |
+
}
|
6745 |
+
|
6746 |
+
.panel>.table>tbody:first-child>tr:first-child th,
|
6747 |
+
.panel>.table>tbody:first-child>tr:first-child td {
|
6748 |
+
border-top: 0
|
6749 |
+
}
|
6750 |
+
|
6751 |
+
.panel>.table-bordered,
|
6752 |
+
.panel>.table-responsive>.table-bordered {
|
6753 |
+
border: 0
|
6754 |
+
}
|
6755 |
+
|
6756 |
+
.panel>.table-bordered>thead>tr>th:first-child,
|
6757 |
+
.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,
|
6758 |
+
.panel>.table-bordered>tbody>tr>th:first-child,
|
6759 |
+
.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,
|
6760 |
+
.panel>.table-bordered>tfoot>tr>th:first-child,
|
6761 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,
|
6762 |
+
.panel>.table-bordered>thead>tr>td:first-child,
|
6763 |
+
.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,
|
6764 |
+
.panel>.table-bordered>tbody>tr>td:first-child,
|
6765 |
+
.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,
|
6766 |
+
.panel>.table-bordered>tfoot>tr>td:first-child,
|
6767 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child {
|
6768 |
+
border-left: 0
|
6769 |
+
}
|
6770 |
+
|
6771 |
+
.panel>.table-bordered>thead>tr>th:last-child,
|
6772 |
+
.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,
|
6773 |
+
.panel>.table-bordered>tbody>tr>th:last-child,
|
6774 |
+
.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,
|
6775 |
+
.panel>.table-bordered>tfoot>tr>th:last-child,
|
6776 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,
|
6777 |
+
.panel>.table-bordered>thead>tr>td:last-child,
|
6778 |
+
.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,
|
6779 |
+
.panel>.table-bordered>tbody>tr>td:last-child,
|
6780 |
+
.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,
|
6781 |
+
.panel>.table-bordered>tfoot>tr>td:last-child,
|
6782 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child {
|
6783 |
+
border-right: 0
|
6784 |
+
}
|
6785 |
+
|
6786 |
+
.panel>.table-bordered>thead>tr:first-child>td,
|
6787 |
+
.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,
|
6788 |
+
.panel>.table-bordered>tbody>tr:first-child>td,
|
6789 |
+
.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,
|
6790 |
+
.panel>.table-bordered>thead>tr:first-child>th,
|
6791 |
+
.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,
|
6792 |
+
.panel>.table-bordered>tbody>tr:first-child>th,
|
6793 |
+
.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th {
|
6794 |
+
border-bottom: 0
|
6795 |
+
}
|
6796 |
+
|
6797 |
+
.panel>.table-bordered>tbody>tr:last-child>td,
|
6798 |
+
.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,
|
6799 |
+
.panel>.table-bordered>tfoot>tr:last-child>td,
|
6800 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,
|
6801 |
+
.panel>.table-bordered>tbody>tr:last-child>th,
|
6802 |
+
.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,
|
6803 |
+
.panel>.table-bordered>tfoot>tr:last-child>th,
|
6804 |
+
.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th {
|
6805 |
+
border-bottom: 0
|
6806 |
+
}
|
6807 |
+
|
6808 |
+
.panel>.table-responsive {
|
6809 |
+
border: 0;
|
6810 |
+
margin-bottom: 0
|
6811 |
+
}
|
6812 |
+
|
6813 |
+
.panel-group {
|
6814 |
+
margin-bottom: 21px
|
6815 |
+
}
|
6816 |
+
|
6817 |
+
.panel-group .panel {
|
6818 |
+
margin-bottom: 0;
|
6819 |
+
border-radius: 4px
|
6820 |
+
}
|
6821 |
+
|
6822 |
+
.panel-group .panel+.panel {
|
6823 |
+
margin-top: 5px
|
6824 |
+
}
|
6825 |
+
|
6826 |
+
.panel-group .panel-heading {
|
6827 |
+
border-bottom: 0
|
6828 |
+
}
|
6829 |
+
|
6830 |
+
.panel-group .panel-heading+.panel-collapse>.panel-body,
|
6831 |
+
.panel-group .panel-heading+.panel-collapse>.list-group {
|
6832 |
+
border-top: 1px solid #ecf0f1
|
6833 |
+
}
|
6834 |
+
|
6835 |
+
.panel-group .panel-footer {
|
6836 |
+
border-top: 0
|
6837 |
+
}
|
6838 |
+
|
6839 |
+
.panel-group .panel-footer+.panel-collapse .panel-body {
|
6840 |
+
border-bottom: 1px solid #ecf0f1
|
6841 |
+
}
|
6842 |
+
|
6843 |
+
.panel-default {
|
6844 |
+
border-color: #ecf0f1
|
6845 |
+
}
|
6846 |
+
|
6847 |
+
.panel-default>.panel-heading {
|
6848 |
+
color: #2c3e50;
|
6849 |
+
background-color: #ecf0f1;
|
6850 |
+
border-color: #ecf0f1
|
6851 |
+
}
|
6852 |
+
|
6853 |
+
.panel-default>.panel-heading+.panel-collapse>.panel-body {
|
6854 |
+
border-top-color: #ecf0f1
|
6855 |
+
}
|
6856 |
+
|
6857 |
+
.panel-default>.panel-heading .badge {
|
6858 |
+
color: #ecf0f1;
|
6859 |
+
background-color: #2c3e50
|
6860 |
+
}
|
6861 |
+
|
6862 |
+
.panel-default>.panel-footer+.panel-collapse>.panel-body {
|
6863 |
+
border-bottom-color: #ecf0f1
|
6864 |
+
}
|
6865 |
+
|
6866 |
+
.panel-primary {
|
6867 |
+
border-color: #2c3e50
|
6868 |
+
}
|
6869 |
+
|
6870 |
+
.panel-primary>.panel-heading {
|
6871 |
+
color: #ffffff;
|
6872 |
+
background-color: #2c3e50;
|
6873 |
+
border-color: #2c3e50
|
6874 |
+
}
|
6875 |
+
|
6876 |
+
.panel-primary>.panel-heading+.panel-collapse>.panel-body {
|
6877 |
+
border-top-color: #2c3e50
|
6878 |
+
}
|
6879 |
+
|
6880 |
+
.panel-primary>.panel-heading .badge {
|
6881 |
+
color: #2c3e50;
|
6882 |
+
background-color: #ffffff
|
6883 |
+
}
|
6884 |
+
|
6885 |
+
.panel-primary>.panel-footer+.panel-collapse>.panel-body {
|
6886 |
+
border-bottom-color: #2c3e50
|
6887 |
+
}
|
6888 |
+
|
6889 |
+
.panel-success {
|
6890 |
+
border-color: #18bc9c
|
6891 |
+
}
|
6892 |
+
|
6893 |
+
.panel-success>.panel-heading {
|
6894 |
+
color: #ffffff;
|
6895 |
+
background-color: #18bc9c;
|
6896 |
+
border-color: #18bc9c
|
6897 |
+
}
|
6898 |
+
|
6899 |
+
.panel-success>.panel-heading+.panel-collapse>.panel-body {
|
6900 |
+
border-top-color: #18bc9c
|
6901 |
+
}
|
6902 |
+
|
6903 |
+
.panel-success>.panel-heading .badge {
|
6904 |
+
color: #18bc9c;
|
6905 |
+
background-color: #ffffff
|
6906 |
+
}
|
6907 |
+
|
6908 |
+
.panel-success>.panel-footer+.panel-collapse>.panel-body {
|
6909 |
+
border-bottom-color: #18bc9c
|
6910 |
+
}
|
6911 |
+
|
6912 |
+
.panel-info {
|
6913 |
+
border-color: #3498db
|
6914 |
+
}
|
6915 |
+
|
6916 |
+
.panel-info>.panel-heading {
|
6917 |
+
color: #ffffff;
|
6918 |
+
background-color: #3498db;
|
6919 |
+
border-color: #3498db
|
6920 |
+
}
|
6921 |
+
|
6922 |
+
.panel-info>.panel-heading+.panel-collapse>.panel-body {
|
6923 |
+
border-top-color: #3498db
|
6924 |
+
}
|
6925 |
+
|
6926 |
+
.panel-info>.panel-heading .badge {
|
6927 |
+
color: #3498db;
|
6928 |
+
background-color: #ffffff
|
6929 |
+
}
|
6930 |
+
|
6931 |
+
.panel-info>.panel-footer+.panel-collapse>.panel-body {
|
6932 |
+
border-bottom-color: #3498db
|
6933 |
+
}
|
6934 |
+
|
6935 |
+
.panel-warning {
|
6936 |
+
border-color: #f39c12
|
6937 |
+
}
|
6938 |
+
|
6939 |
+
.panel-warning>.panel-heading {
|
6940 |
+
color: #ffffff;
|
6941 |
+
background-color: #f39c12;
|
6942 |
+
border-color: #f39c12
|
6943 |
+
}
|
6944 |
+
|
6945 |
+
.panel-warning>.panel-heading+.panel-collapse>.panel-body {
|
6946 |
+
border-top-color: #f39c12
|
6947 |
+
}
|
6948 |
+
|
6949 |
+
.panel-warning>.panel-heading .badge {
|
6950 |
+
color: #f39c12;
|
6951 |
+
background-color: #ffffff
|
6952 |
+
}
|
6953 |
+
|
6954 |
+
.panel-warning>.panel-footer+.panel-collapse>.panel-body {
|
6955 |
+
border-bottom-color: #f39c12
|
6956 |
+
}
|
6957 |
+
|
6958 |
+
.panel-danger {
|
6959 |
+
border-color: #e74c3c
|
6960 |
+
}
|
6961 |
+
|
6962 |
+
.panel-danger>.panel-heading {
|
6963 |
+
color: #ffffff;
|
6964 |
+
background-color: #e74c3c;
|
6965 |
+
border-color: #e74c3c
|
6966 |
+
}
|
6967 |
+
|
6968 |
+
.panel-danger>.panel-heading+.panel-collapse>.panel-body {
|
6969 |
+
border-top-color: #e74c3c
|
6970 |
+
}
|
6971 |
+
|
6972 |
+
.panel-danger>.panel-heading .badge {
|
6973 |
+
color: #e74c3c;
|
6974 |
+
background-color: #ffffff
|
6975 |
+
}
|
6976 |
+
|
6977 |
+
.panel-danger>.panel-footer+.panel-collapse>.panel-body {
|
6978 |
+
border-bottom-color: #e74c3c
|
6979 |
+
}
|
6980 |
+
|
6981 |
+
.embed-responsive {
|
6982 |
+
position: relative;
|
6983 |
+
display: block;
|
6984 |
+
height: 0;
|
6985 |
+
padding: 0;
|
6986 |
+
overflow: hidden
|
6987 |
+
}
|
6988 |
+
|
6989 |
+
.embed-responsive .embed-responsive-item,
|
6990 |
+
.embed-responsive iframe,
|
6991 |
+
.embed-responsive embed,
|
6992 |
+
.embed-responsive object,
|
6993 |
+
.embed-responsive video {
|
6994 |
+
position: absolute;
|
6995 |
+
top: 0;
|
6996 |
+
left: 0;
|
6997 |
+
bottom: 0;
|
6998 |
+
height: 100%;
|
6999 |
+
width: 100%;
|
7000 |
+
border: 0
|
7001 |
+
}
|
7002 |
+
|
7003 |
+
.embed-responsive-16by9 {
|
7004 |
+
padding-bottom: 56.25%
|
7005 |
+
}
|
7006 |
+
|
7007 |
+
.embed-responsive-4by3 {
|
7008 |
+
padding-bottom: 75%
|
7009 |
+
}
|
7010 |
+
|
7011 |
+
.well {
|
7012 |
+
min-height: 20px;
|
7013 |
+
padding: 19px;
|
7014 |
+
margin-bottom: 20px;
|
7015 |
+
background-color: #ecf0f1;
|
7016 |
+
border: 1px solid transparent;
|
7017 |
+
border-radius: 4px;
|
7018 |
+
-webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05);
|
7019 |
+
box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05)
|
7020 |
+
}
|
7021 |
+
|
7022 |
+
.well blockquote {
|
7023 |
+
border-color: #ddd;
|
7024 |
+
border-color: rgba(0, 0, 0, 0.15)
|
7025 |
+
}
|
7026 |
+
|
7027 |
+
.well-lg {
|
7028 |
+
padding: 24px;
|
7029 |
+
border-radius: 6px
|
7030 |
+
}
|
7031 |
+
|
7032 |
+
.well-sm {
|
7033 |
+
padding: 9px;
|
7034 |
+
border-radius: 3px
|
7035 |
+
}
|
7036 |
+
|
7037 |
+
.close {
|
7038 |
+
float: right;
|
7039 |
+
font-size: 22.5px;
|
7040 |
+
font-weight: bold;
|
7041 |
+
line-height: 1;
|
7042 |
+
color: #000000;
|
7043 |
+
text-shadow: none;
|
7044 |
+
opacity: 0.2;
|
7045 |
+
filter: alpha(opacity=20)
|
7046 |
+
}
|
7047 |
+
|
7048 |
+
.close:hover,
|
7049 |
+
.close:focus {
|
7050 |
+
color: #000000;
|
7051 |
+
text-decoration: none;
|
7052 |
+
cursor: pointer;
|
7053 |
+
opacity: 0.5;
|
7054 |
+
filter: alpha(opacity=50)
|
7055 |
+
}
|
7056 |
+
|
7057 |
+
button.close {
|
7058 |
+
padding: 0;
|
7059 |
+
cursor: pointer;
|
7060 |
+
background: transparent;
|
7061 |
+
border: 0;
|
7062 |
+
-webkit-appearance: none
|
7063 |
+
}
|
7064 |
+
|
7065 |
+
.modal-open {
|
7066 |
+
overflow: hidden
|
7067 |
+
}
|
7068 |
+
|
7069 |
+
.modal {
|
7070 |
+
display: none;
|
7071 |
+
overflow: hidden;
|
7072 |
+
position: fixed;
|
7073 |
+
top: 0;
|
7074 |
+
right: 0;
|
7075 |
+
bottom: 0;
|
7076 |
+
left: 0;
|
7077 |
+
z-index: 1050;
|
7078 |
+
-webkit-overflow-scrolling: touch;
|
7079 |
+
outline: 0
|
7080 |
+
}
|
7081 |
+
|
7082 |
+
.modal.fade .modal-dialog {
|
7083 |
+
-webkit-transform: translate(0, -25%);
|
7084 |
+
-ms-transform: translate(0, -25%);
|
7085 |
+
-o-transform: translate(0, -25%);
|
7086 |
+
transform: translate(0, -25%);
|
7087 |
+
-webkit-transition: -webkit-transform .3s ease-out;
|
7088 |
+
-o-transition: -o-transform .3s ease-out;
|
7089 |
+
transition: transform .3s ease-out
|
7090 |
+
}
|
7091 |
+
|
7092 |
+
.modal.in .modal-dialog {
|
7093 |
+
-webkit-transform: translate(0, 0);
|
7094 |
+
-ms-transform: translate(0, 0);
|
7095 |
+
-o-transform: translate(0, 0);
|
7096 |
+
transform: translate(0, 0)
|
7097 |
+
}
|
7098 |
+
|
7099 |
+
.modal-open .modal {
|
7100 |
+
overflow-x: hidden;
|
7101 |
+
overflow-y: auto
|
7102 |
+
}
|
7103 |
+
|
7104 |
+
.modal-dialog {
|
7105 |
+
position: relative;
|
7106 |
+
width: auto;
|
7107 |
+
margin: 10px
|
7108 |
+
}
|
7109 |
+
|
7110 |
+
.modal-content {
|
7111 |
+
position: relative;
|
7112 |
+
background-color: #ffffff;
|
7113 |
+
border: 1px solid #999999;
|
7114 |
+
border: 1px solid rgba(0, 0, 0, 0.2);
|
7115 |
+
border-radius: 6px;
|
7116 |
+
-webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
|
7117 |
+
box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5);
|
7118 |
+
-webkit-background-clip: padding-box;
|
7119 |
+
background-clip: padding-box;
|
7120 |
+
outline: 0
|
7121 |
+
}
|
7122 |
+
|
7123 |
+
.modal-backdrop {
|
7124 |
+
position: fixed;
|
7125 |
+
top: 0;
|
7126 |
+
right: 0;
|
7127 |
+
bottom: 0;
|
7128 |
+
left: 0;
|
7129 |
+
z-index: 1040;
|
7130 |
+
background-color: #000000
|
7131 |
+
}
|
7132 |
+
|
7133 |
+
.modal-backdrop.fade {
|
7134 |
+
opacity: 0;
|
7135 |
+
filter: alpha(opacity=0)
|
7136 |
+
}
|
7137 |
+
|
7138 |
+
.modal-backdrop.in {
|
7139 |
+
opacity: 0.5;
|
7140 |
+
filter: alpha(opacity=50)
|
7141 |
+
}
|
7142 |
+
|
7143 |
+
.modal-header {
|
7144 |
+
padding: 15px;
|
7145 |
+
border-bottom: 1px solid #e5e5e5;
|
7146 |
+
min-height: 16.42857143px
|
7147 |
+
}
|
7148 |
+
|
7149 |
+
.modal-header .close {
|
7150 |
+
margin-top: -2px
|
7151 |
+
}
|
7152 |
+
|
7153 |
+
.modal-title {
|
7154 |
+
margin: 0;
|
7155 |
+
line-height: 1.42857143
|
7156 |
+
}
|
7157 |
+
|
7158 |
+
.modal-body {
|
7159 |
+
position: relative;
|
7160 |
+
padding: 20px
|
7161 |
+
}
|
7162 |
+
|
7163 |
+
.modal-footer {
|
7164 |
+
padding: 20px;
|
7165 |
+
text-align: right;
|
7166 |
+
border-top: 1px solid #e5e5e5
|
7167 |
+
}
|
7168 |
+
|
7169 |
+
.modal-footer .btn+.btn {
|
7170 |
+
margin-left: 5px;
|
7171 |
+
margin-bottom: 0
|
7172 |
+
}
|
7173 |
+
|
7174 |
+
.modal-footer .btn-group .btn+.btn {
|
7175 |
+
margin-left: -1px
|
7176 |
+
}
|
7177 |
+
|
7178 |
+
.modal-footer .btn-block+.btn-block {
|
7179 |
+
margin-left: 0
|
7180 |
+
}
|
7181 |
+
|
7182 |
+
.modal-scrollbar-measure {
|
7183 |
+
position: absolute;
|
7184 |
+
top: -9999px;
|
7185 |
+
width: 50px;
|
7186 |
+
height: 50px;
|
7187 |
+
overflow: scroll
|
7188 |
+
}
|
7189 |
+
|
7190 |
+
@media (min-width: 768px) {
|
7191 |
+
.modal-dialog {
|
7192 |
+
width: 600px;
|
7193 |
+
margin: 30px auto
|
7194 |
+
}
|
7195 |
+
.modal-content {
|
7196 |
+
-webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5);
|
7197 |
+
box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5)
|
7198 |
+
}
|
7199 |
+
.modal-sm {
|
7200 |
+
width: 300px
|
7201 |
+
}
|
7202 |
+
}
|
7203 |
+
|
7204 |
+
@media (min-width: 992px) {
|
7205 |
+
.modal-lg {
|
7206 |
+
width: 900px
|
7207 |
+
}
|
7208 |
+
}
|
7209 |
+
|
7210 |
+
.tooltip {
|
7211 |
+
position: absolute;
|
7212 |
+
z-index: 1070;
|
7213 |
+
display: block;
|
7214 |
+
font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
7215 |
+
font-style: normal;
|
7216 |
+
font-weight: normal;
|
7217 |
+
letter-spacing: normal;
|
7218 |
+
line-break: auto;
|
7219 |
+
line-height: 1.42857143;
|
7220 |
+
text-align: left;
|
7221 |
+
text-align: start;
|
7222 |
+
text-decoration: none;
|
7223 |
+
text-shadow: none;
|
7224 |
+
text-transform: none;
|
7225 |
+
white-space: normal;
|
7226 |
+
word-break: normal;
|
7227 |
+
word-spacing: normal;
|
7228 |
+
word-wrap: normal;
|
7229 |
+
font-size: 13px;
|
7230 |
+
opacity: 0;
|
7231 |
+
filter: alpha(opacity=0)
|
7232 |
+
}
|
7233 |
+
|
7234 |
+
.tooltip.in {
|
7235 |
+
opacity: 0.9;
|
7236 |
+
filter: alpha(opacity=90)
|
7237 |
+
}
|
7238 |
+
|
7239 |
+
.tooltip.top {
|
7240 |
+
margin-top: -3px;
|
7241 |
+
padding: 5px 0
|
7242 |
+
}
|
7243 |
+
|
7244 |
+
.tooltip.right {
|
7245 |
+
margin-left: 3px;
|
7246 |
+
padding: 0 5px
|
7247 |
+
}
|
7248 |
+
|
7249 |
+
.tooltip.bottom {
|
7250 |
+
margin-top: 3px;
|
7251 |
+
padding: 5px 0
|
7252 |
+
}
|
7253 |
+
|
7254 |
+
.tooltip.left {
|
7255 |
+
margin-left: -3px;
|
7256 |
+
padding: 0 5px
|
7257 |
+
}
|
7258 |
+
|
7259 |
+
.tooltip-inner {
|
7260 |
+
max-width: 200px;
|
7261 |
+
padding: 3px 8px;
|
7262 |
+
color: #ffffff;
|
7263 |
+
text-align: center;
|
7264 |
+
background-color: #000000;
|
7265 |
+
border-radius: 4px
|
7266 |
+
}
|
7267 |
+
|
7268 |
+
.tooltip-arrow {
|
7269 |
+
position: absolute;
|
7270 |
+
width: 0;
|
7271 |
+
height: 0;
|
7272 |
+
border-color: transparent;
|
7273 |
+
border-style: solid
|
7274 |
+
}
|
7275 |
+
|
7276 |
+
.tooltip.top .tooltip-arrow {
|
7277 |
+
bottom: 0;
|
7278 |
+
left: 50%;
|
7279 |
+
margin-left: -5px;
|
7280 |
+
border-width: 5px 5px 0;
|
7281 |
+
border-top-color: #000000
|
7282 |
+
}
|
7283 |
+
|
7284 |
+
.tooltip.top-left .tooltip-arrow {
|
7285 |
+
bottom: 0;
|
7286 |
+
right: 5px;
|
7287 |
+
margin-bottom: -5px;
|
7288 |
+
border-width: 5px 5px 0;
|
7289 |
+
border-top-color: #000000
|
7290 |
+
}
|
7291 |
+
|
7292 |
+
.tooltip.top-right .tooltip-arrow {
|
7293 |
+
bottom: 0;
|
7294 |
+
left: 5px;
|
7295 |
+
margin-bottom: -5px;
|
7296 |
+
border-width: 5px 5px 0;
|
7297 |
+
border-top-color: #000000
|
7298 |
+
}
|
7299 |
+
|
7300 |
+
.tooltip.right .tooltip-arrow {
|
7301 |
+
top: 50%;
|
7302 |
+
left: 0;
|
7303 |
+
margin-top: -5px;
|
7304 |
+
border-width: 5px 5px 5px 0;
|
7305 |
+
border-right-color: #000000
|
7306 |
+
}
|
7307 |
+
|
7308 |
+
.tooltip.left .tooltip-arrow {
|
7309 |
+
top: 50%;
|
7310 |
+
right: 0;
|
7311 |
+
margin-top: -5px;
|
7312 |
+
border-width: 5px 0 5px 5px;
|
7313 |
+
border-left-color: #000000
|
7314 |
+
}
|
7315 |
+
|
7316 |
+
.tooltip.bottom .tooltip-arrow {
|
7317 |
+
top: 0;
|
7318 |
+
left: 50%;
|
7319 |
+
margin-left: -5px;
|
7320 |
+
border-width: 0 5px 5px;
|
7321 |
+
border-bottom-color: #000000
|
7322 |
+
}
|
7323 |
+
|
7324 |
+
.tooltip.bottom-left .tooltip-arrow {
|
7325 |
+
top: 0;
|
7326 |
+
right: 5px;
|
7327 |
+
margin-top: -5px;
|
7328 |
+
border-width: 0 5px 5px;
|
7329 |
+
border-bottom-color: #000000
|
7330 |
+
}
|
7331 |
+
|
7332 |
+
.tooltip.bottom-right .tooltip-arrow {
|
7333 |
+
top: 0;
|
7334 |
+
left: 5px;
|
7335 |
+
margin-top: -5px;
|
7336 |
+
border-width: 0 5px 5px;
|
7337 |
+
border-bottom-color: #000000
|
7338 |
+
}
|
7339 |
+
|
7340 |
+
.popover {
|
7341 |
+
position: absolute;
|
7342 |
+
top: 0;
|
7343 |
+
left: 0;
|
7344 |
+
z-index: 1060;
|
7345 |
+
display: none;
|
7346 |
+
max-width: 276px;
|
7347 |
+
padding: 1px;
|
7348 |
+
font-family: "Lato", "Helvetica Neue", Helvetica, Arial, sans-serif;
|
7349 |
+
font-style: normal;
|
7350 |
+
font-weight: normal;
|
7351 |
+
letter-spacing: normal;
|
7352 |
+
line-break: auto;
|
7353 |
+
line-height: 1.42857143;
|
7354 |
+
text-align: left;
|
7355 |
+
text-align: start;
|
7356 |
+
text-decoration: none;
|
7357 |
+
text-shadow: none;
|
7358 |
+
text-transform: none;
|
7359 |
+
white-space: normal;
|
7360 |
+
word-break: normal;
|
7361 |
+
word-spacing: normal;
|
7362 |
+
word-wrap: normal;
|
7363 |
+
font-size: 15px;
|
7364 |
+
background-color: #ffffff;
|
7365 |
+
-webkit-background-clip: padding-box;
|
7366 |
+
background-clip: padding-box;
|
7367 |
+
border: 1px solid #cccccc;
|
7368 |
+
border: 1px solid rgba(0, 0, 0, 0.2);
|
7369 |
+
border-radius: 6px;
|
7370 |
+
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2);
|
7371 |
+
box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2)
|
7372 |
+
}
|
7373 |
+
|
7374 |
+
.popover.top {
|
7375 |
+
margin-top: -10px
|
7376 |
+
}
|
7377 |
+
|
7378 |
+
.popover.right {
|
7379 |
+
margin-left: 10px
|
7380 |
+
}
|
7381 |
+
|
7382 |
+
.popover.bottom {
|
7383 |
+
margin-top: 10px
|
7384 |
+
}
|
7385 |
+
|
7386 |
+
.popover.left {
|
7387 |
+
margin-left: -10px
|
7388 |
+
}
|
7389 |
+
|
7390 |
+
.popover-title {
|
7391 |
+
margin: 0;
|
7392 |
+
padding: 8px 14px;
|
7393 |
+
font-size: 15px;
|
7394 |
+
background-color: #f7f7f7;
|
7395 |
+
border-bottom: 1px solid #ebebeb;
|
7396 |
+
border-radius: 5px 5px 0 0
|
7397 |
+
}
|
7398 |
+
|
7399 |
+
.popover-content {
|
7400 |
+
padding: 9px 14px
|
7401 |
+
}
|
7402 |
+
|
7403 |
+
.popover>.arrow,
|
7404 |
+
.popover>.arrow:after {
|
7405 |
+
position: absolute;
|
7406 |
+
display: block;
|
7407 |
+
width: 0;
|
7408 |
+
height: 0;
|
7409 |
+
border-color: transparent;
|
7410 |
+
border-style: solid
|
7411 |
+
}
|
7412 |
+
|
7413 |
+
.popover>.arrow {
|
7414 |
+
border-width: 11px
|
7415 |
+
}
|
7416 |
+
|
7417 |
+
.popover>.arrow:after {
|
7418 |
+
border-width: 10px;
|
7419 |
+
content: ""
|
7420 |
+
}
|
7421 |
+
|
7422 |
+
.popover.top>.arrow {
|
7423 |
+
left: 50%;
|
7424 |
+
margin-left: -11px;
|
7425 |
+
border-bottom-width: 0;
|
7426 |
+
border-top-color: #999999;
|
7427 |
+
border-top-color: rgba(0, 0, 0, 0.25);
|
7428 |
+
bottom: -11px
|
7429 |
+
}
|
7430 |
+
|
7431 |
+
.popover.top>.arrow:after {
|
7432 |
+
content: " ";
|
7433 |
+
bottom: 1px;
|
7434 |
+
margin-left: -10px;
|
7435 |
+
border-bottom-width: 0;
|
7436 |
+
border-top-color: #ffffff
|
7437 |
+
}
|
7438 |
+
|
7439 |
+
.popover.right>.arrow {
|
7440 |
+
top: 50%;
|
7441 |
+
left: -11px;
|
7442 |
+
margin-top: -11px;
|
7443 |
+
border-left-width: 0;
|
7444 |
+
border-right-color: #999999;
|
7445 |
+
border-right-color: rgba(0, 0, 0, 0.25)
|
7446 |
+
}
|
7447 |
+
|
7448 |
+
.popover.right>.arrow:after {
|
7449 |
+
content: " ";
|
7450 |
+
left: 1px;
|
7451 |
+
bottom: -10px;
|
7452 |
+
border-left-width: 0;
|
7453 |
+
border-right-color: #ffffff
|
7454 |
+
}
|
7455 |
+
|
7456 |
+
.popover.bottom>.arrow {
|
7457 |
+
left: 50%;
|
7458 |
+
margin-left: -11px;
|
7459 |
+
border-top-width: 0;
|
7460 |
+
border-bottom-color: #999999;
|
7461 |
+
border-bottom-color: rgba(0, 0, 0, 0.25);
|
7462 |
+
top: -11px
|
7463 |
+
}
|
7464 |
+
|
7465 |
+
.popover.bottom>.arrow:after {
|
7466 |
+
content: " ";
|
7467 |
+
top: 1px;
|
7468 |
+
margin-left: -10px;
|
7469 |
+
border-top-width: 0;
|
7470 |
+
border-bottom-color: #ffffff
|
7471 |
+
}
|
7472 |
+
|
7473 |
+
.popover.left>.arrow {
|
7474 |
+
top: 50%;
|
7475 |
+
right: -11px;
|
7476 |
+
margin-top: -11px;
|
7477 |
+
border-right-width: 0;
|
7478 |
+
border-left-color: #999999;
|
7479 |
+
border-left-color: rgba(0, 0, 0, 0.25)
|
7480 |
+
}
|
7481 |
+
|
7482 |
+
.popover.left>.arrow:after {
|
7483 |
+
content: " ";
|
7484 |
+
right: 1px;
|
7485 |
+
border-right-width: 0;
|
7486 |
+
border-left-color: #ffffff;
|
7487 |
+
bottom: -10px
|
7488 |
+
}
|
7489 |
+
|
7490 |
+
.carousel {
|
7491 |
+
position: relative
|
7492 |
+
}
|
7493 |
+
|
7494 |
+
.carousel-inner {
|
7495 |
+
position: relative;
|
7496 |
+
overflow: hidden;
|
7497 |
+
width: 100%
|
7498 |
+
}
|
7499 |
+
|
7500 |
+
.carousel-inner>.item {
|
7501 |
+
display: none;
|
7502 |
+
position: relative;
|
7503 |
+
-webkit-transition: .6s ease-in-out left;
|
7504 |
+
-o-transition: .6s ease-in-out left;
|
7505 |
+
transition: .6s ease-in-out left
|
7506 |
+
}
|
7507 |
+
|
7508 |
+
.carousel-inner>.item>img,
|
7509 |
+
.carousel-inner>.item>a>img {
|
7510 |
+
line-height: 1
|
7511 |
+
}
|
7512 |
+
|
7513 |
+
@media all and (transform-3d),
|
7514 |
+
(-webkit-transform-3d) {
|
7515 |
+
.carousel-inner>.item {
|
7516 |
+
-webkit-transition: -webkit-transform .6s ease-in-out;
|
7517 |
+
-o-transition: -o-transform .6s ease-in-out;
|
7518 |
+
transition: transform .6s ease-in-out;
|
7519 |
+
-webkit-backface-visibility: hidden;
|
7520 |
+
backface-visibility: hidden;
|
7521 |
+
-webkit-perspective: 1000px;
|
7522 |
+
perspective: 1000px
|
7523 |
+
}
|
7524 |
+
.carousel-inner>.item.next,
|
7525 |
+
.carousel-inner>.item.active.right {
|
7526 |
+
-webkit-transform: translate3d(100%, 0, 0);
|
7527 |
+
transform: translate3d(100%, 0, 0);
|
7528 |
+
left: 0
|
7529 |
+
}
|
7530 |
+
.carousel-inner>.item.prev,
|
7531 |
+
.carousel-inner>.item.active.left {
|
7532 |
+
-webkit-transform: translate3d(-100%, 0, 0);
|
7533 |
+
transform: translate3d(-100%, 0, 0);
|
7534 |
+
left: 0
|
7535 |
+
}
|
7536 |
+
.carousel-inner>.item.next.left,
|
7537 |
+
.carousel-inner>.item.prev.right,
|
7538 |
+
.carousel-inner>.item.active {
|
7539 |
+
-webkit-transform: translate3d(0, 0, 0);
|
7540 |
+
transform: translate3d(0, 0, 0);
|
7541 |
+
left: 0
|
7542 |
+
}
|
7543 |
+
}
|
7544 |
+
|
7545 |
+
.carousel-inner>.active,
|
7546 |
+
.carousel-inner>.next,
|
7547 |
+
.carousel-inner>.prev {
|
7548 |
+
display: block
|
7549 |
+
}
|
7550 |
+
|
7551 |
+
.carousel-inner>.active {
|
7552 |
+
left: 0
|
7553 |
+
}
|
7554 |
+
|
7555 |
+
.carousel-inner>.next,
|
7556 |
+
.carousel-inner>.prev {
|
7557 |
+
position: absolute;
|
7558 |
+
top: 0;
|
7559 |
+
width: 100%
|
7560 |
+
}
|
7561 |
+
|
7562 |
+
.carousel-inner>.next {
|
7563 |
+
left: 100%
|
7564 |
+
}
|
7565 |
+
|
7566 |
+
.carousel-inner>.prev {
|
7567 |
+
left: -100%
|
7568 |
+
}
|
7569 |
+
|
7570 |
+
.carousel-inner>.next.left,
|
7571 |
+
.carousel-inner>.prev.right {
|
7572 |
+
left: 0
|
7573 |
+
}
|
7574 |
+
|
7575 |
+
.carousel-inner>.active.left {
|
7576 |
+
left: -100%
|
7577 |
+
}
|
7578 |
+
|
7579 |
+
.carousel-inner>.active.right {
|
7580 |
+
left: 100%
|
7581 |
+
}
|
7582 |
+
|
7583 |
+
.carousel-control {
|
7584 |
+
position: absolute;
|
7585 |
+
top: 0;
|
7586 |
+
left: 0;
|
7587 |
+
bottom: 0;
|
7588 |
+
width: 15%;
|
7589 |
+
opacity: 0.5;
|
7590 |
+
filter: alpha(opacity=50);
|
7591 |
+
font-size: 20px;
|
7592 |
+
color: #ffffff;
|
7593 |
+
text-align: center;
|
7594 |
+
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6)
|
7595 |
+
}
|
7596 |
+
|
7597 |
+
.carousel-control.left {
|
7598 |
+
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%);
|
7599 |
+
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%);
|
7600 |
+
background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001)));
|
7601 |
+
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%);
|
7602 |
+
background-repeat: repeat-x;
|
7603 |
+
filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1)
|
7604 |
+
}
|
7605 |
+
|
7606 |
+
.carousel-control.right {
|
7607 |
+
left: auto;
|
7608 |
+
right: 0;
|
7609 |
+
background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%);
|
7610 |
+
background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%);
|
7611 |
+
background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5)));
|
7612 |
+
background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%);
|
7613 |
+
background-repeat: repeat-x;
|
7614 |
+
filter: progid: DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1)
|
7615 |
+
}
|
7616 |
+
|
7617 |
+
.carousel-control:hover,
|
7618 |
+
.carousel-control:focus {
|
7619 |
+
outline: 0;
|
7620 |
+
color: #ffffff;
|
7621 |
+
text-decoration: none;
|
7622 |
+
opacity: 0.9;
|
7623 |
+
filter: alpha(opacity=90)
|
7624 |
+
}
|
7625 |
+
|
7626 |
+
.carousel-control .icon-prev,
|
7627 |
+
.carousel-control .icon-next,
|
7628 |
+
.carousel-control .glyphicon-chevron-left,
|
7629 |
+
.carousel-control .glyphicon-chevron-right {
|
7630 |
+
position: absolute;
|
7631 |
+
top: 50%;
|
7632 |
+
margin-top: -10px;
|
7633 |
+
z-index: 5;
|
7634 |
+
display: inline-block
|
7635 |
+
}
|
7636 |
+
|
7637 |
+
.carousel-control .icon-prev,
|
7638 |
+
.carousel-control .glyphicon-chevron-left {
|
7639 |
+
left: 50%;
|
7640 |
+
margin-left: -10px
|
7641 |
+
}
|
7642 |
+
|
7643 |
+
.carousel-control .icon-next,
|
7644 |
+
.carousel-control .glyphicon-chevron-right {
|
7645 |
+
right: 50%;
|
7646 |
+
margin-right: -10px
|
7647 |
+
}
|
7648 |
+
|
7649 |
+
.carousel-control .icon-prev,
|
7650 |
+
.carousel-control .icon-next {
|
7651 |
+
width: 20px;
|
7652 |
+
height: 20px;
|
7653 |
+
line-height: 1;
|
7654 |
+
font-family: serif
|
7655 |
+
}
|
7656 |
+
|
7657 |
+
.carousel-control .icon-prev:before {
|
7658 |
+
content: '\2039'
|
7659 |
+
}
|
7660 |
+
|
7661 |
+
.carousel-control .icon-next:before {
|
7662 |
+
content: '\203a'
|
7663 |
+
}
|
7664 |
+
|
7665 |
+
.carousel-indicators {
|
7666 |
+
position: absolute;
|
7667 |
+
bottom: 10px;
|
7668 |
+
left: 50%;
|
7669 |
+
z-index: 15;
|
7670 |
+
width: 60%;
|
7671 |
+
margin-left: -30%;
|
7672 |
+
padding-left: 0;
|
7673 |
+
list-style: none;
|
7674 |
+
text-align: center
|
7675 |
+
}
|
7676 |
+
|
7677 |
+
.carousel-indicators li {
|
7678 |
+
display: inline-block;
|
7679 |
+
width: 10px;
|
7680 |
+
height: 10px;
|
7681 |
+
margin: 1px;
|
7682 |
+
text-indent: -999px;
|
7683 |
+
border: 1px solid #ffffff;
|
7684 |
+
border-radius: 10px;
|
7685 |
+
cursor: pointer;
|
7686 |
+
background-color: #000 \9;
|
7687 |
+
background-color: rgba(0, 0, 0, 0)
|
7688 |
+
}
|
7689 |
+
|
7690 |
+
.carousel-indicators .active {
|
7691 |
+
margin: 0;
|
7692 |
+
width: 12px;
|
7693 |
+
height: 12px;
|
7694 |
+
background-color: #ffffff
|
7695 |
+
}
|
7696 |
+
|
7697 |
+
.carousel-caption {
|
7698 |
+
position: absolute;
|
7699 |
+
left: 15%;
|
7700 |
+
right: 15%;
|
7701 |
+
bottom: 20px;
|
7702 |
+
z-index: 10;
|
7703 |
+
padding-top: 20px;
|
7704 |
+
padding-bottom: 20px;
|
7705 |
+
color: #ffffff;
|
7706 |
+
text-align: center;
|
7707 |
+
text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6)
|
7708 |
+
}
|
7709 |
+
|
7710 |
+
.carousel-caption .btn {
|
7711 |
+
text-shadow: none
|
7712 |
+
}
|
7713 |
+
|
7714 |
+
@media screen and (min-width: 768px) {
|
7715 |
+
.carousel-control .glyphicon-chevron-left,
|
7716 |
+
.carousel-control .glyphicon-chevron-right,
|
7717 |
+
.carousel-control .icon-prev,
|
7718 |
+
.carousel-control .icon-next {
|
7719 |
+
width: 30px;
|
7720 |
+
height: 30px;
|
7721 |
+
margin-top: -15px;
|
7722 |
+
font-size: 30px
|
7723 |
+
}
|
7724 |
+
.carousel-control .glyphicon-chevron-left,
|
7725 |
+
.carousel-control .icon-prev {
|
7726 |
+
margin-left: -15px
|
7727 |
+
}
|
7728 |
+
.carousel-control .glyphicon-chevron-right,
|
7729 |
+
.carousel-control .icon-next {
|
7730 |
+
margin-right: -15px
|
7731 |
+
}
|
7732 |
+
.carousel-caption {
|
7733 |
+
left: 20%;
|
7734 |
+
right: 20%;
|
7735 |
+
padding-bottom: 30px
|
7736 |
+
}
|
7737 |
+
.carousel-indicators {
|
7738 |
+
bottom: 20px
|
7739 |
+
}
|
7740 |
+
}
|
7741 |
+
|
7742 |
+
.clearfix:before,
|
7743 |
+
.clearfix:after,
|
7744 |
+
.dl-horizontal dd:before,
|
7745 |
+
.dl-horizontal dd:after,
|
7746 |
+
.container:before,
|
7747 |
+
.container:after,
|
7748 |
+
.container-fluid:before,
|
7749 |
+
.container-fluid:after,
|
7750 |
+
.row:before,
|
7751 |
+
.row:after,
|
7752 |
+
.form-horizontal .form-group:before,
|
7753 |
+
.form-horizontal .form-group:after,
|
7754 |
+
.btn-toolbar:before,
|
7755 |
+
.btn-toolbar:after,
|
7756 |
+
.btn-group-vertical>.btn-group:before,
|
7757 |
+
.btn-group-vertical>.btn-group:after,
|
7758 |
+
.nav:before,
|
7759 |
+
.nav:after,
|
7760 |
+
.navbar:before,
|
7761 |
+
.navbar:after,
|
7762 |
+
.navbar-header:before,
|
7763 |
+
.navbar-header:after,
|
7764 |
+
.navbar-collapse:before,
|
7765 |
+
.navbar-collapse:after,
|
7766 |
+
.pager:before,
|
7767 |
+
.pager:after,
|
7768 |
+
.panel-body:before,
|
7769 |
+
.panel-body:after,
|
7770 |
+
.modal-footer:before,
|
7771 |
+
.modal-footer:after {
|
7772 |
+
content: " ";
|
7773 |
+
display: table
|
7774 |
+
}
|
7775 |
+
|
7776 |
+
.clearfix:after,
|
7777 |
+
.dl-horizontal dd:after,
|
7778 |
+
.container:after,
|
7779 |
+
.container-fluid:after,
|
7780 |
+
.row:after,
|
7781 |
+
.form-horizontal .form-group:after,
|
7782 |
+
.btn-toolbar:after,
|
7783 |
+
.btn-group-vertical>.btn-group:after,
|
7784 |
+
.nav:after,
|
7785 |
+
.navbar:after,
|
7786 |
+
.navbar-header:after,
|
7787 |
+
.navbar-collapse:after,
|
7788 |
+
.pager:after,
|
7789 |
+
.panel-body:after,
|
7790 |
+
.modal-footer:after {
|
7791 |
+
clear: both
|
7792 |
+
}
|
7793 |
+
|
7794 |
+
.center-block {
|
7795 |
+
display: block;
|
7796 |
+
margin-left: auto;
|
7797 |
+
margin-right: auto
|
7798 |
+
}
|
7799 |
+
|
7800 |
+
.pull-right {
|
7801 |
+
float: right !important
|
7802 |
+
}
|
7803 |
+
|
7804 |
+
.pull-left {
|
7805 |
+
float: left !important
|
7806 |
+
}
|
7807 |
+
|
7808 |
+
.hide {
|
7809 |
+
display: none !important
|
7810 |
+
}
|
7811 |
+
|
7812 |
+
.show {
|
7813 |
+
display: block !important
|
7814 |
+
}
|
7815 |
+
|
7816 |
+
.invisible {
|
7817 |
+
visibility: hidden
|
7818 |
+
}
|
7819 |
+
|
7820 |
+
.text-hide {
|
7821 |
+
font: 0/0 a;
|
7822 |
+
color: transparent;
|
7823 |
+
text-shadow: none;
|
7824 |
+
background-color: transparent;
|
7825 |
+
border: 0
|
7826 |
+
}
|
7827 |
+
|
7828 |
+
.hidden {
|
7829 |
+
display: none !important
|
7830 |
+
}
|
7831 |
+
|
7832 |
+
.affix {
|
7833 |
+
position: fixed
|
7834 |
+
}
|
7835 |
+
|
7836 |
+
@-ms-viewport {
|
7837 |
+
width: device-width
|
7838 |
+
}
|
7839 |
+
|
7840 |
+
.visible-xs,
|
7841 |
+
.visible-sm,
|
7842 |
+
.visible-md,
|
7843 |
+
.visible-lg {
|
7844 |
+
display: none !important
|
7845 |
+
}
|
7846 |
+
|
7847 |
+
.visible-xs-block,
|
7848 |
+
.visible-xs-inline,
|
7849 |
+
.visible-xs-inline-block,
|
7850 |
+
.visible-sm-block,
|
7851 |
+
.visible-sm-inline,
|
7852 |
+
.visible-sm-inline-block,
|
7853 |
+
.visible-md-block,
|
7854 |
+
.visible-md-inline,
|
7855 |
+
.visible-md-inline-block,
|
7856 |
+
.visible-lg-block,
|
7857 |
+
.visible-lg-inline,
|
7858 |
+
.visible-lg-inline-block {
|
7859 |
+
display: none !important
|
7860 |
+
}
|
7861 |
+
|
7862 |
+
@media (max-width: 767px) {
|
7863 |
+
.visible-xs {
|
7864 |
+
display: block !important
|
7865 |
+
}
|
7866 |
+
table.visible-xs {
|
7867 |
+
display: table !important
|
7868 |
+
}
|
7869 |
+
tr.visible-xs {
|
7870 |
+
display: table-row !important
|
7871 |
+
}
|
7872 |
+
th.visible-xs,
|
7873 |
+
td.visible-xs {
|
7874 |
+
display: table-cell !important
|
7875 |
+
}
|
7876 |
+
}
|
7877 |
+
|
7878 |
+
@media (max-width: 767px) {
|
7879 |
+
.visible-xs-block {
|
7880 |
+
display: block !important
|
7881 |
+
}
|
7882 |
+
}
|
7883 |
+
|
7884 |
+
@media (max-width: 767px) {
|
7885 |
+
.visible-xs-inline {
|
7886 |
+
display: inline !important
|
7887 |
+
}
|
7888 |
+
}
|
7889 |
+
|
7890 |
+
@media (max-width: 767px) {
|
7891 |
+
.visible-xs-inline-block {
|
7892 |
+
display: inline-block !important
|
7893 |
+
}
|
7894 |
+
}
|
7895 |
+
|
7896 |
+
@media (min-width: 768px) and (max-width: 991px) {
|
7897 |
+
.visible-sm {
|
7898 |
+
display: block !important
|
7899 |
+
}
|
7900 |
+
table.visible-sm {
|
7901 |
+
display: table !important
|
7902 |
+
}
|
7903 |
+
tr.visible-sm {
|
7904 |
+
display: table-row !important
|
7905 |
+
}
|
7906 |
+
th.visible-sm,
|
7907 |
+
td.visible-sm {
|
7908 |
+
display: table-cell !important
|
7909 |
+
}
|
7910 |
+
}
|
7911 |
+
|
7912 |
+
@media (min-width: 768px) and (max-width: 991px) {
|
7913 |
+
.visible-sm-block {
|
7914 |
+
display: block !important
|
7915 |
+
}
|
7916 |
+
}
|
7917 |
+
|
7918 |
+
@media (min-width: 768px) and (max-width: 991px) {
|
7919 |
+
.visible-sm-inline {
|
7920 |
+
display: inline !important
|
7921 |
+
}
|
7922 |
+
}
|
7923 |
+
|
7924 |
+
@media (min-width: 768px) and (max-width: 991px) {
|
7925 |
+
.visible-sm-inline-block {
|
7926 |
+
display: inline-block !important
|
7927 |
+
}
|
7928 |
+
}
|
7929 |
+
|
7930 |
+
@media (min-width: 992px) and (max-width: 1199px) {
|
7931 |
+
.visible-md {
|
7932 |
+
display: block !important
|
7933 |
+
}
|
7934 |
+
table.visible-md {
|
7935 |
+
display: table !important
|
7936 |
+
}
|
7937 |
+
tr.visible-md {
|
7938 |
+
display: table-row !important
|
7939 |
+
}
|
7940 |
+
th.visible-md,
|
7941 |
+
td.visible-md {
|
7942 |
+
display: table-cell !important
|
7943 |
+
}
|
7944 |
+
}
|
7945 |
+
|
7946 |
+
@media (min-width: 992px) and (max-width: 1199px) {
|
7947 |
+
.visible-md-block {
|
7948 |
+
display: block !important
|
7949 |
+
}
|
7950 |
+
}
|
7951 |
+
|
7952 |
+
@media (min-width: 992px) and (max-width: 1199px) {
|
7953 |
+
.visible-md-inline {
|
7954 |
+
display: inline !important
|
7955 |
+
}
|
7956 |
+
}
|
7957 |
+
|
7958 |
+
@media (min-width: 992px) and (max-width: 1199px) {
|
7959 |
+
.visible-md-inline-block {
|
7960 |
+
display: inline-block !important
|
7961 |
+
}
|
7962 |
+
}
|
7963 |
+
|
7964 |
+
@media (min-width: 1200px) {
|
7965 |
+
.visible-lg {
|
7966 |
+
display: block !important
|
7967 |
+
}
|
7968 |
+
table.visible-lg {
|
7969 |
+
display: table !important
|
7970 |
+
}
|
7971 |
+
tr.visible-lg {
|
7972 |
+
display: table-row !important
|
7973 |
+
}
|
7974 |
+
th.visible-lg,
|
7975 |
+
td.visible-lg {
|
7976 |
+
display: table-cell !important
|
7977 |
+
}
|
7978 |
+
}
|
7979 |
+
|
7980 |
+
@media (min-width: 1200px) {
|
7981 |
+
.visible-lg-block {
|
7982 |
+
display: block !important
|
7983 |
+
}
|
7984 |
+
}
|
7985 |
+
|
7986 |
+
@media (min-width: 1200px) {
|
7987 |
+
.visible-lg-inline {
|
7988 |
+
display: inline !important
|
7989 |
+
}
|
7990 |
+
}
|
7991 |
+
|
7992 |
+
@media (min-width: 1200px) {
|
7993 |
+
.visible-lg-inline-block {
|
7994 |
+
display: inline-block !important
|
7995 |
+
}
|
7996 |
+
}
|
7997 |
+
|
7998 |
+
@media (max-width: 767px) {
|
7999 |
+
.hidden-xs {
|
8000 |
+
display: none !important
|
8001 |
+
}
|
8002 |
+
}
|
8003 |
+
|
8004 |
+
@media (min-width: 768px) and (max-width: 991px) {
|
8005 |
+
.hidden-sm {
|
8006 |
+
display: none !important
|
8007 |
+
}
|
8008 |
+
}
|
8009 |
+
|
8010 |
+
@media (min-width: 992px) and (max-width: 1199px) {
|
8011 |
+
.hidden-md {
|
8012 |
+
display: none !important
|
8013 |
+
}
|
8014 |
+
}
|
8015 |
+
|
8016 |
+
@media (min-width: 1200px) {
|
8017 |
+
.hidden-lg {
|
8018 |
+
display: none !important
|
8019 |
+
}
|
8020 |
+
}
|
8021 |
+
|
8022 |
+
.visible-print {
|
8023 |
+
display: none !important
|
8024 |
+
}
|
8025 |
+
|
8026 |
+
@media print {
|
8027 |
+
.visible-print {
|
8028 |
+
display: block !important
|
8029 |
+
}
|
8030 |
+
table.visible-print {
|
8031 |
+
display: table !important
|
8032 |
+
}
|
8033 |
+
tr.visible-print {
|
8034 |
+
display: table-row !important
|
8035 |
+
}
|
8036 |
+
th.visible-print,
|
8037 |
+
td.visible-print {
|
8038 |
+
display: table-cell !important
|
8039 |
+
}
|
8040 |
+
}
|
8041 |
+
|
8042 |
+
.visible-print-block {
|
8043 |
+
display: none !important
|
8044 |
+
}
|
8045 |
+
|
8046 |
+
@media print {
|
8047 |
+
.visible-print-block {
|
8048 |
+
display: block !important
|
8049 |
+
}
|
8050 |
+
}
|
8051 |
+
|
8052 |
+
.visible-print-inline {
|
8053 |
+
display: none !important
|
8054 |
+
}
|
8055 |
+
|
8056 |
+
@media print {
|
8057 |
+
.visible-print-inline {
|
8058 |
+
display: inline !important
|
8059 |
+
}
|
8060 |
+
}
|
8061 |
+
|
8062 |
+
.visible-print-inline-block {
|
8063 |
+
display: none !important
|
8064 |
+
}
|
8065 |
+
|
8066 |
+
@media print {
|
8067 |
+
.visible-print-inline-block {
|
8068 |
+
display: inline-block !important
|
8069 |
+
}
|
8070 |
+
}
|
8071 |
+
|
8072 |
+
@media print {
|
8073 |
+
.hidden-print {
|
8074 |
+
display: none !important
|
8075 |
+
}
|
8076 |
+
}
|
8077 |
+
|
8078 |
+
.navbar {
|
8079 |
+
border-width: 0
|
8080 |
+
}
|
8081 |
+
|
8082 |
+
.navbar-default .badge {
|
8083 |
+
background-color: #fff;
|
8084 |
+
color: #2c3e50
|
8085 |
+
}
|
8086 |
+
|
8087 |
+
.navbar-inverse .badge {
|
8088 |
+
background-color: #fff;
|
8089 |
+
color: #18bc9c
|
8090 |
+
}
|
8091 |
+
|
8092 |
+
.navbar-brand {
|
8093 |
+
line-height: 1
|
8094 |
+
}
|
8095 |
+
|
8096 |
+
.btn {
|
8097 |
+
border-width: 2px
|
8098 |
+
}
|
8099 |
+
|
8100 |
+
.btn:active {
|
8101 |
+
-webkit-box-shadow: none;
|
8102 |
+
box-shadow: none
|
8103 |
+
}
|
8104 |
+
|
8105 |
+
.btn-group.open .dropdown-toggle {
|
8106 |
+
-webkit-box-shadow: none;
|
8107 |
+
box-shadow: none
|
8108 |
+
}
|
8109 |
+
|
8110 |
+
.text-primary,
|
8111 |
+
.text-primary:hover {
|
8112 |
+
color: #2c3e50
|
8113 |
+
}
|
8114 |
+
|
8115 |
+
.text-success,
|
8116 |
+
.text-success:hover {
|
8117 |
+
color: #18bc9c
|
8118 |
+
}
|
8119 |
+
|
8120 |
+
.text-danger,
|
8121 |
+
.text-danger:hover {
|
8122 |
+
color: #e74c3c
|
8123 |
+
}
|
8124 |
+
|
8125 |
+
.text-warning,
|
8126 |
+
.text-warning:hover {
|
8127 |
+
color: #f39c12
|
8128 |
+
}
|
8129 |
+
|
8130 |
+
.text-info,
|
8131 |
+
.text-info:hover {
|
8132 |
+
color: #3498db
|
8133 |
+
}
|
8134 |
+
|
8135 |
+
table a:not(.btn),
|
8136 |
+
.table a:not(.btn) {
|
8137 |
+
text-decoration: underline
|
8138 |
+
}
|
8139 |
+
|
8140 |
+
table .dropdown-menu a,
|
8141 |
+
.table .dropdown-menu a {
|
8142 |
+
text-decoration: none
|
8143 |
+
}
|
8144 |
+
|
8145 |
+
table .success,
|
8146 |
+
.table .success,
|
8147 |
+
table .warning,
|
8148 |
+
.table .warning,
|
8149 |
+
table .danger,
|
8150 |
+
.table .danger,
|
8151 |
+
table .info,
|
8152 |
+
.table .info {
|
8153 |
+
color: #fff
|
8154 |
+
}
|
8155 |
+
|
8156 |
+
table .success>th>a,
|
8157 |
+
.table .success>th>a,
|
8158 |
+
table .warning>th>a,
|
8159 |
+
.table .warning>th>a,
|
8160 |
+
table .danger>th>a,
|
8161 |
+
.table .danger>th>a,
|
8162 |
+
table .info>th>a,
|
8163 |
+
.table .info>th>a,
|
8164 |
+
table .success>td>a,
|
8165 |
+
.table .success>td>a,
|
8166 |
+
table .warning>td>a,
|
8167 |
+
.table .warning>td>a,
|
8168 |
+
table .danger>td>a,
|
8169 |
+
.table .danger>td>a,
|
8170 |
+
table .info>td>a,
|
8171 |
+
.table .info>td>a,
|
8172 |
+
table .success>a,
|
8173 |
+
.table .success>a,
|
8174 |
+
table .warning>a,
|
8175 |
+
.table .warning>a,
|
8176 |
+
table .danger>a,
|
8177 |
+
.table .danger>a,
|
8178 |
+
table .info>a,
|
8179 |
+
.table .info>a {
|
8180 |
+
color: #fff
|
8181 |
+
}
|
8182 |
+
|
8183 |
+
table>thead>tr>th,
|
8184 |
+
.table>thead>tr>th,
|
8185 |
+
table>tbody>tr>th,
|
8186 |
+
.table>tbody>tr>th,
|
8187 |
+
table>tfoot>tr>th,
|
8188 |
+
.table>tfoot>tr>th,
|
8189 |
+
table>thead>tr>td,
|
8190 |
+
.table>thead>tr>td,
|
8191 |
+
table>tbody>tr>td,
|
8192 |
+
.table>tbody>tr>td,
|
8193 |
+
table>tfoot>tr>td,
|
8194 |
+
.table>tfoot>tr>td {
|
8195 |
+
border: none
|
8196 |
+
}
|
8197 |
+
|
8198 |
+
table-bordered>thead>tr>th,
|
8199 |
+
.table-bordered>thead>tr>th,
|
8200 |
+
table-bordered>tbody>tr>th,
|
8201 |
+
.table-bordered>tbody>tr>th,
|
8202 |
+
table-bordered>tfoot>tr>th,
|
8203 |
+
.table-bordered>tfoot>tr>th,
|
8204 |
+
table-bordered>thead>tr>td,
|
8205 |
+
.table-bordered>thead>tr>td,
|
8206 |
+
table-bordered>tbody>tr>td,
|
8207 |
+
.table-bordered>tbody>tr>td,
|
8208 |
+
table-bordered>tfoot>tr>td,
|
8209 |
+
.table-bordered>tfoot>tr>td {
|
8210 |
+
border: 1px solid #ecf0f1
|
8211 |
+
}
|
8212 |
+
|
8213 |
+
.form-control,
|
8214 |
+
input {
|
8215 |
+
border-width: 2px;
|
8216 |
+
-webkit-box-shadow: none;
|
8217 |
+
box-shadow: none
|
8218 |
+
}
|
8219 |
+
|
8220 |
+
.form-control:focus,
|
8221 |
+
input:focus {
|
8222 |
+
-webkit-box-shadow: none;
|
8223 |
+
box-shadow: none
|
8224 |
+
}
|
8225 |
+
|
8226 |
+
.has-warning .help-block,
|
8227 |
+
.has-warning .control-label,
|
8228 |
+
.has-warning .radio,
|
8229 |
+
.has-warning .checkbox,
|
8230 |
+
.has-warning .radio-inline,
|
8231 |
+
.has-warning .checkbox-inline,
|
8232 |
+
.has-warning.radio label,
|
8233 |
+
.has-warning.checkbox label,
|
8234 |
+
.has-warning.radio-inline label,
|
8235 |
+
.has-warning.checkbox-inline label,
|
8236 |
+
.has-warning .form-control-feedback {
|
8237 |
+
color: #f39c12
|
8238 |
+
}
|
8239 |
+
|
8240 |
+
.has-warning .form-control,
|
8241 |
+
.has-warning .form-control:focus {
|
8242 |
+
border: 2px solid #f39c12
|
8243 |
+
}
|
8244 |
+
|
8245 |
+
.has-warning .input-group-addon {
|
8246 |
+
border-color: #f39c12
|
8247 |
+
}
|
8248 |
+
|
8249 |
+
.has-error .help-block,
|
8250 |
+
.has-error .control-label,
|
8251 |
+
.has-error .radio,
|
8252 |
+
.has-error .checkbox,
|
8253 |
+
.has-error .radio-inline,
|
8254 |
+
.has-error .checkbox-inline,
|
8255 |
+
.has-error.radio label,
|
8256 |
+
.has-error.checkbox label,
|
8257 |
+
.has-error.radio-inline label,
|
8258 |
+
.has-error.checkbox-inline label,
|
8259 |
+
.has-error .form-control-feedback {
|
8260 |
+
color: #e74c3c
|
8261 |
+
}
|
8262 |
+
|
8263 |
+
.has-error .form-control,
|
8264 |
+
.has-error .form-control:focus {
|
8265 |
+
border: 2px solid #e74c3c
|
8266 |
+
}
|
8267 |
+
|
8268 |
+
.has-error .input-group-addon {
|
8269 |
+
border-color: #e74c3c
|
8270 |
+
}
|
8271 |
+
|
8272 |
+
.has-success .help-block,
|
8273 |
+
.has-success .control-label,
|
8274 |
+
.has-success .radio,
|
8275 |
+
.has-success .checkbox,
|
8276 |
+
.has-success .radio-inline,
|
8277 |
+
.has-success .checkbox-inline,
|
8278 |
+
.has-success.radio label,
|
8279 |
+
.has-success.checkbox label,
|
8280 |
+
.has-success.radio-inline label,
|
8281 |
+
.has-success.checkbox-inline label,
|
8282 |
+
.has-success .form-control-feedback {
|
8283 |
+
color: #18bc9c
|
8284 |
+
}
|
8285 |
+
|
8286 |
+
.has-success .form-control,
|
8287 |
+
.has-success .form-control:focus {
|
8288 |
+
border: 2px solid #18bc9c
|
8289 |
+
}
|
8290 |
+
|
8291 |
+
.has-success .input-group-addon {
|
8292 |
+
border-color: #18bc9c
|
8293 |
+
}
|
8294 |
+
|
8295 |
+
.nav .open>a,
|
8296 |
+
.nav .open>a:hover,
|
8297 |
+
.nav .open>a:focus {
|
8298 |
+
border-color: transparent
|
8299 |
+
}
|
8300 |
+
|
8301 |
+
.pager a,
|
8302 |
+
.pager a:hover {
|
8303 |
+
color: #fff
|
8304 |
+
}
|
8305 |
+
|
8306 |
+
.pager .disabled>a,
|
8307 |
+
.pager .disabled>a:hover,
|
8308 |
+
.pager .disabled>a:focus,
|
8309 |
+
.pager .disabled>span {
|
8310 |
+
background-color: #3be6c4
|
8311 |
+
}
|
8312 |
+
|
8313 |
+
.close {
|
8314 |
+
color: #fff;
|
8315 |
+
text-decoration: none;
|
8316 |
+
opacity: 0.4
|
8317 |
+
}
|
8318 |
+
|
8319 |
+
.close:hover,
|
8320 |
+
.close:focus {
|
8321 |
+
color: #fff;
|
8322 |
+
opacity: 1
|
8323 |
+
}
|
8324 |
+
|
8325 |
+
.alert .alert-link {
|
8326 |
+
color: #fff;
|
8327 |
+
text-decoration: underline
|
8328 |
+
}
|
8329 |
+
|
8330 |
+
.progress {
|
8331 |
+
height: 10px;
|
8332 |
+
-webkit-box-shadow: none;
|
8333 |
+
box-shadow: none
|
8334 |
+
}
|
8335 |
+
|
8336 |
+
.progress .progress-bar {
|
8337 |
+
font-size: 10px;
|
8338 |
+
line-height: 10px
|
8339 |
+
}
|
8340 |
+
|
8341 |
+
.well {
|
8342 |
+
-webkit-box-shadow: none;
|
8343 |
+
box-shadow: none
|
8344 |
+
}
|
8345 |
+
|
8346 |
+
a.list-group-item.active,
|
8347 |
+
a.list-group-item.active:hover,
|
8348 |
+
a.list-group-item.active:focus {
|
8349 |
+
border-color: #ecf0f1
|
8350 |
+
}
|
8351 |
+
|
8352 |
+
a.list-group-item-success.active {
|
8353 |
+
background-color: #18bc9c
|
8354 |
+
}
|
8355 |
+
|
8356 |
+
a.list-group-item-success.active:hover,
|
8357 |
+
a.list-group-item-success.active:focus {
|
8358 |
+
background-color: #15a589
|
8359 |
+
}
|
8360 |
+
|
8361 |
+
a.list-group-item-warning.active {
|
8362 |
+
background-color: #f39c12
|
8363 |
+
}
|
8364 |
+
|
8365 |
+
a.list-group-item-warning.active:hover,
|
8366 |
+
a.list-group-item-warning.active:focus {
|
8367 |
+
background-color: #e08e0b
|
8368 |
+
}
|
8369 |
+
|
8370 |
+
a.list-group-item-danger.active {
|
8371 |
+
background-color: #e74c3c
|
8372 |
+
}
|
8373 |
+
|
8374 |
+
a.list-group-item-danger.active:hover,
|
8375 |
+
a.list-group-item-danger.active:focus {
|
8376 |
+
background-color: #e43725
|
8377 |
+
}
|
8378 |
+
|
8379 |
+
.panel-default .close {
|
8380 |
+
color: #2c3e50
|
8381 |
+
}
|
8382 |
+
|
8383 |
+
.modal .close {
|
8384 |
+
color: #2c3e50
|
8385 |
+
}
|
8386 |
+
|
8387 |
+
.popover {
|
8388 |
+
color: #2c3e50
|
8389 |
+
}
|
assets/css/fonts/icomoon.eot
ADDED
Binary file
|
assets/css/fonts/icomoon.svg
ADDED
@@ -0,0 +1,15 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?xml version="1.0" standalone="no"?>
|
2 |
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
|
3 |
+
<svg xmlns="http://www.w3.org/2000/svg">
|
4 |
+
<metadata>Generated by IcoMoon</metadata>
|
5 |
+
<defs>
|
6 |
+
<font id="icomoon" horiz-adv-x="1024">
|
7 |
+
<font-face units-per-em="1024" ascent="960" descent="-64" />
|
8 |
+
<missing-glyph horiz-adv-x="1024" />
|
9 |
+
<glyph unicode=" " d="" horiz-adv-x="512" />
|
10 |
+
<glyph unicode="" d="M960-64h-896c-35.344 0-64 28.624-64 64v896c0 35.376 28.656 64 64 64h640l-128-128h-448v-768h768v448l128 128v-640c0-35.376-28.656-64-64-64zM256 192v192l576 576h64l128-128v-64l-576-576h-192zM544 416l352 352-64 64-352-352 64-64zM384 384l-64-64v-64h64l64 64-64 64z" />
|
11 |
+
<glyph unicode="" d="M896 768h-768v-640h768v640zM1024 896v0-896h-1024v896h1024zM832 192h-640v128l192 320 263-320 185 128v-64zM640 608c0 53.019 42.981 96 96 96s96-42.981 96-96c0-53.019-42.981-96-96-96s-96 42.981-96 96z" />
|
12 |
+
<glyph unicode="" d="M304 352c0-114.876 93.124-208 208-208s208 93.124 208 208-93.124 208-208 208-208-93.124-208-208zM960 704h-224c-16 64-32 128-96 128h-256c-64 0-80-64-96-128h-224c-35.2 0-64-28.8-64-64v-576c0-35.2 28.8-64 64-64h896c35.2 0 64 28.8 64 64v576c0 35.2-28.8 64-64 64zM512 68c-156.85 0-284 127.148-284 284 0 156.85 127.15 284 284 284 156.852 0 284-127.15 284-284 0-156.852-127.146-284-284-284zM960 512h-128v64h128v-64z" />
|
13 |
+
<glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM768 613.49l-165.488-165.49 165.488-165.488v-90.512h-90.512l-165.488 165.488-165.49-165.488h-90.51v90.512l165.49 165.488-165.49 165.49v90.51h90.51l165.49-165.49 165.488 165.49h90.512v-90.51z" />
|
14 |
+
<glyph unicode="" d="M512 960c-282.77 0-512-229.23-512-512s229.23-512 512-512 512 229.23 512 512-229.23 512-512 512zM416 128l-212 276 94 98 118-150 370 302 46-46-416-480z" />
|
15 |
+
</font></defs></svg>
|
assets/css/fonts/icomoon.ttf
ADDED
Binary file
|
assets/css/fonts/icomoon.woff
ADDED
Binary file
|
assets/css/frontend.css
ADDED
@@ -0,0 +1,19 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
.wpgmp_map img {
|
2 |
+
max-width: none !important;
|
3 |
+
padding: 0px !important;
|
4 |
+
}
|
5 |
+
|
6 |
+
.wpgmp_map div {
|
7 |
+
-moz-box-sizing: content-box;
|
8 |
+
-webkit-box-sizing: content-box;
|
9 |
+
box-sizing: content-box;
|
10 |
+
}
|
11 |
+
|
12 |
+
.wpgmp_map_container {
|
13 |
+
position: relative;
|
14 |
+
}
|
15 |
+
|
16 |
+
.wpgmp_map_container .gm-style-iw {
|
17 |
+
min-height: 50px!important;
|
18 |
+
min-width: 150px!important;
|
19 |
+
}
|
assets/images/default_marker.png
ADDED
Binary file
|
assets/images/grid.png
ADDED
Binary file
|
assets/images/helpdesk.png
ADDED
Binary file
|
assets/images/icons/accident.png
ADDED
Binary file
|
assets/images/icons/administration.png
ADDED
Binary file
|
assets/images/icons/aestheticscenter.png
ADDED
Binary file
|
assets/images/icons/agriculture.png
ADDED
Binary file
|
assets/images/icons/agriculture2.png
ADDED
Binary file
|
assets/images/icons/agriculture3.png
ADDED
Binary file
|
assets/images/icons/agriculture4.png
ADDED
Binary file
|
assets/images/icons/aircraft-small.png
ADDED
Binary file
|
assets/images/icons/airplane-sport.png
ADDED
Binary file
|
assets/images/icons/airplane-tourism.png
ADDED
Binary file
|
assets/images/icons/airport-apron.png
ADDED
Binary file
|
assets/images/icons/airport-runway.png
ADDED
Binary file
|
assets/images/icons/airport-terminal.png
ADDED
Binary file
|
assets/images/icons/airport.png
ADDED
Binary file
|
assets/images/icons/amphitheater-tourism.png
ADDED
Binary file
|
assets/images/icons/amphitheater.png
ADDED
Binary file
|
assets/images/icons/ancientmonument.png
ADDED
Binary file
|
assets/images/icons/ancienttemple.png
ADDED
Binary file
|
assets/images/icons/ancienttempleruin.png
ADDED
Binary file
|
assets/images/icons/animals.png
ADDED
Binary file
|
assets/images/icons/anniversary.png
ADDED
Binary file
|
assets/images/icons/apartment.png
ADDED
Binary file
|
assets/images/icons/aquarium.png
ADDED
Binary file
|
assets/images/icons/arch.png
ADDED
Binary file
|
assets/images/icons/archery.png
ADDED
Binary file
|
assets/images/icons/artgallery.png
ADDED
Binary file
|
assets/images/icons/atm.png
ADDED
Binary file
|
assets/images/icons/atv.png
ADDED
Binary file
|
assets/images/icons/audio.png
ADDED
Binary file
|
assets/images/icons/australianfootball.png
ADDED
Binary file
|
assets/images/icons/bags.png
ADDED
Binary file
|
assets/images/icons/bank.png
ADDED
Binary file
|
assets/images/icons/bankeuro.png
ADDED
Binary file
|
assets/images/icons/bankpound.png
ADDED
Binary file
|
assets/images/icons/bar.png
ADDED
Binary file
|
assets/images/icons/baseball.png
ADDED
Binary file
|
assets/images/icons/basketball.png
ADDED
Binary file
|
assets/images/icons/baskteball2.png
ADDED
Binary file
|
assets/images/icons/beach.png
ADDED
Binary file
|
assets/images/icons/beautiful.png
ADDED
Binary file
|
assets/images/icons/bench.png
ADDED
Binary file
|
assets/images/icons/bicycleparking.png
ADDED
Binary file
|
assets/images/icons/bigcity.png
ADDED
Binary file
|
assets/images/icons/billiard.png
ADDED
Binary file
|
assets/images/icons/bobsleigh.png
ADDED
Binary file
|
assets/images/icons/bomb.png
ADDED
Binary file
|
assets/images/icons/bookstore.png
ADDED
Binary file
|
assets/images/icons/bowling.png
ADDED
Binary file
|
assets/images/icons/boxing.png
ADDED
Binary file
|
assets/images/icons/bread.png
ADDED
Binary file
|
assets/images/icons/bridge.png
ADDED
Binary file
|
assets/images/icons/bridgemodern.png
ADDED
Binary file
|
assets/images/icons/bullfight.png
ADDED
Binary file
|
assets/images/icons/bungalow.png
ADDED
Binary file
|
assets/images/icons/bus.png
ADDED
Binary file
|
assets/images/icons/butcher.png
ADDED
Binary file
|
assets/images/icons/cabin.png
ADDED
Binary file
|
assets/images/icons/cablecar.png
ADDED
Binary file
|
assets/images/icons/camping.png
ADDED
Binary file
|
assets/images/icons/campingsite.png
ADDED
Binary file
|
assets/images/icons/canoe.png
ADDED
Binary file
|
assets/images/icons/car.png
ADDED
Binary file
|
assets/images/icons/carrental.png
ADDED
Binary file
|
assets/images/icons/carrepair.png
ADDED
Binary file
|
assets/images/icons/carwash.png
ADDED
Binary file
|
assets/images/icons/casino.png
ADDED
Binary file
|
assets/images/icons/castle.png
ADDED
Binary file
|
assets/images/icons/cathedral.png
ADDED
Binary file
|
assets/images/icons/cathedral2.png
ADDED
Binary file
|
assets/images/icons/cave.png
ADDED
Binary file
|
assets/images/icons/cemetary.png
ADDED
Binary file
|
assets/images/icons/chapel.png
ADDED
Binary file
|
assets/images/icons/church.png
ADDED
Binary file
|
assets/images/icons/church2.png
ADDED
Binary file
|
assets/images/icons/cinema.png
ADDED
Binary file
|
assets/images/icons/circus.png
ADDED
Binary file
|
assets/images/icons/citysquare.png
ADDED
Binary file
|
assets/images/icons/climbing.png
ADDED
Binary file
|
assets/images/icons/clothes-female.png
ADDED
Binary file
|
assets/images/icons/clothes-male.png
ADDED
Binary file
|
assets/images/icons/clothes.png
ADDED
Binary file
|
assets/images/icons/clouds.png
ADDED
Binary file
|
assets/images/icons/cloudsun.png
ADDED
Binary file
|
assets/images/icons/club.png
ADDED
Binary file
|
assets/images/icons/cluster.png
ADDED
Binary file
|
assets/images/icons/cluster2.png
ADDED
Binary file
|
assets/images/icons/cluster3.png
ADDED
Binary file
|
assets/images/icons/cluster4.png
ADDED
Binary file
|
assets/images/icons/cluster5.png
ADDED
Binary file
|
assets/images/icons/cocktail.png
ADDED
Binary file
|
assets/images/icons/coffee.png
ADDED
Binary file
|
assets/images/icons/communitycentre.png
ADDED
Binary file
|
assets/images/icons/company.png
ADDED
Binary file
|
assets/images/icons/computer.png
ADDED
Binary file
|
assets/images/icons/concessionaire.png
ADDED
Binary file
|
assets/images/icons/conference.png
ADDED
Binary file
|
assets/images/icons/construction.png
ADDED
Binary file
|
assets/images/icons/convenience.png
ADDED
Binary file
|
assets/images/icons/convent.png
ADDED
Binary file
|
assets/images/icons/corral.png
ADDED
Binary file
|
assets/images/icons/country.png
ADDED
Binary file
|
assets/images/icons/court.png
ADDED
Binary file
|
assets/images/icons/cricket.png
ADDED
Binary file
|
assets/images/icons/cross.png
ADDED
Binary file
|
assets/images/icons/crossingguard.png
ADDED
Binary file
|
assets/images/icons/cruise.png
ADDED
Binary file
|
assets/images/icons/currencyexchange.png
ADDED
Binary file
|
assets/images/icons/customs.png
ADDED
Binary file
|
assets/images/icons/cycling.png
ADDED
Binary file
|
assets/images/icons/cyclingfeedarea.png
ADDED
Binary file
|
assets/images/icons/cyclingmountain1.png
ADDED
Binary file
|
assets/images/icons/cyclingmountain2.png
ADDED
Binary file
|
assets/images/icons/cyclingmountain3.png
ADDED
Binary file
|
assets/images/icons/cyclingmountain4.png
ADDED
Binary file
|
assets/images/icons/cyclingmountainnotrated.png
ADDED
Binary file
|
assets/images/icons/cyclingsport.png
ADDED
Binary file
|
assets/images/icons/cyclingsprint.png
ADDED
Binary file
|
assets/images/icons/cyclinguncategorized.png
ADDED
Binary file
|
assets/images/icons/dam.png
ADDED
Binary file
|
assets/images/icons/dancinghall.png
ADDED
Binary file
|
assets/images/icons/dates.png
ADDED
Binary file
|
assets/images/icons/daycare.png
ADDED
Binary file
|
assets/images/icons/days-dim.png
ADDED
Binary file
|
assets/images/icons/days-dom.png
ADDED
Binary file
|
assets/images/icons/days-jeu.png
ADDED
Binary file
|
assets/images/icons/days-jue.png
ADDED
Binary file
|
assets/images/icons/days-lun.png
ADDED
Binary file
|
assets/images/icons/days-mar.png
ADDED
Binary file
|
assets/images/icons/days-mer.png
ADDED
Binary file
|
assets/images/icons/days-mie.png
ADDED
Binary file
|
assets/images/icons/days-qua.png
ADDED
Binary file
|
assets/images/icons/days-qui.png
ADDED
Binary file
|
assets/images/icons/days-sab.png
ADDED
Binary file
|
assets/images/icons/days-sam.png
ADDED
Binary file
|
assets/images/icons/days-seg.png
ADDED
Binary file
|
assets/images/icons/days-sex.png
ADDED
Binary file
|
assets/images/icons/days-ter.png
ADDED
Binary file
|
assets/images/icons/days-ven.png
ADDED
Binary file
|
assets/images/icons/days-vie.png
ADDED
Binary file
|
assets/images/icons/dentist.png
ADDED
Binary file
|
assets/images/icons/deptstore.png
ADDED
Binary file
|
assets/images/icons/disability.png
ADDED
Binary file
|
assets/images/icons/disabledparking.png
ADDED
Binary file
|
assets/images/icons/diving.png
ADDED
Binary file
|
assets/images/icons/doctor.png
ADDED
Binary file
|
assets/images/icons/dog-leash.png
ADDED
Binary file
|
assets/images/icons/dog-offleash.png
ADDED
Binary file
|
assets/images/icons/door.png
ADDED
Binary file
|
assets/images/icons/down.png
ADDED
Binary file
|
assets/images/icons/downleft.png
ADDED
Binary file
|
assets/images/icons/downright.png
ADDED
Binary file
|
assets/images/icons/downthenleft.png
ADDED
Binary file
|
assets/images/icons/downthenright.png
ADDED
Binary file
|
assets/images/icons/drinkingfountain.png
ADDED
Binary file
|
assets/images/icons/drinkingwater.png
ADDED
Binary file
|
assets/images/icons/drugs.png
ADDED
Binary file
|
assets/images/icons/elevator.png
ADDED
Binary file
|
assets/images/icons/embassy.png
ADDED
Binary file
|
assets/images/icons/entrance.png
ADDED
Binary file
|
assets/images/icons/escalator-down.png
ADDED
Binary file
|
assets/images/icons/escalator-up.png
ADDED
Binary file
|
assets/images/icons/exit.png
ADDED
Binary file
|
assets/images/icons/expert.png
ADDED
Binary file
|
assets/images/icons/explosion.png
ADDED
Binary file
|
assets/images/icons/factory.png
ADDED
Binary file
|
assets/images/icons/fallingrocks.png
ADDED
Binary file
|
assets/images/icons/family.png
ADDED
Binary file
|
assets/images/icons/farm.png
ADDED
Binary file
|
assets/images/icons/fastfood.png
ADDED
Binary file
|
assets/images/icons/festival.png
ADDED
Binary file
|
assets/images/icons/findajob.png
ADDED
Binary file
|
assets/images/icons/findjob.png
ADDED
Binary file
|
assets/images/icons/fire-extinguisher.png
ADDED
Binary file
|
assets/images/icons/fire.png
ADDED
Binary file
|
assets/images/icons/firemen.png
ADDED
Binary file
|
assets/images/icons/fireworks.png
ADDED
Binary file
|
assets/images/icons/firstaid.png
ADDED
Binary file
|
assets/images/icons/fishing.png
ADDED
Binary file
|
assets/images/icons/fishingshop.png
ADDED
Binary file
|
assets/images/icons/fitnesscenter.png
ADDED
Binary file
|
assets/images/icons/fjord.png
ADDED
Binary file
|
assets/images/icons/flood.png
ADDED
Binary file
|
assets/images/icons/flowers.png
ADDED
Binary file
|
assets/images/icons/followpath.png
ADDED
Binary file
|
assets/images/icons/foodtruck.png
ADDED
Binary file
|
assets/images/icons/forest.png
ADDED
Binary file
|
assets/images/icons/fortress.png
ADDED
Binary file
|
assets/images/icons/fossils.png
ADDED
Binary file
|
assets/images/icons/fountain.png
ADDED
Binary file
|
assets/images/icons/friday.png
ADDED
Binary file
|
assets/images/icons/friends.png
ADDED
Binary file
|
assets/images/icons/garden.png
ADDED
Binary file
|
assets/images/icons/gateswalls.png
ADDED
Binary file
|
assets/images/icons/gazstation.png
ADDED
Binary file
|
assets/images/icons/geyser.png
ADDED
Binary file
|
assets/images/icons/gifts.png
ADDED
Binary file
|
assets/images/icons/girlfriend.png
ADDED
Binary file
|
assets/images/icons/glacier.png
ADDED
Binary file
|
assets/images/icons/golf.png
ADDED
Binary file
|
assets/images/icons/gondola.png
ADDED
Binary file
|
assets/images/icons/google-map-default-icon.png
ADDED
Binary file
|
assets/images/icons/gourmet.png
ADDED
Binary file
|
assets/images/icons/grocery.png
ADDED
Binary file
|
assets/images/icons/gun.png
ADDED
Binary file
|
assets/images/icons/gym.png
ADDED
Binary file
|
assets/images/icons/hairsalon.png
ADDED
Binary file
|
assets/images/icons/handball.png
ADDED
Binary file
|
assets/images/icons/hanggliding.png
ADDED
Binary file
|
assets/images/icons/hats.png
ADDED
Binary file
|
assets/images/icons/headstone.png
ADDED
Binary file
|
assets/images/icons/headstonejewish.png
ADDED
Binary file
|
assets/images/icons/helicopter.png
ADDED
Binary file
|
assets/images/icons/highway.png
ADDED
Binary file
|
assets/images/icons/hiking-tourism.png
ADDED
Binary file
|
assets/images/icons/hiking.png
ADDED
Binary file
|
assets/images/icons/historicalquarter.png
ADDED
Binary file
|
assets/images/icons/home.png
ADDED
Binary file
|
assets/images/icons/horseriding.png
ADDED
Binary file
|
assets/images/icons/hospital.png
ADDED
Binary file
|
assets/images/icons/hostel.png
ADDED
Binary file
|
assets/images/icons/hotairballoon.png
ADDED
Binary file
|
assets/images/icons/hotel.png
ADDED
Binary file
|
assets/images/icons/hotel1star.png
ADDED
Binary file
|
assets/images/icons/hotel2stars.png
ADDED
Binary file
|
assets/images/icons/hotel3stars.png
ADDED
Binary file
|
assets/images/icons/hotel4stars.png
ADDED
Binary file
|
assets/images/icons/hotel5stars.png
ADDED
Binary file
|
assets/images/icons/hunting.png
ADDED
Binary file
|
assets/images/icons/icecream.png
ADDED
Binary file
|
assets/images/icons/icehockey.png
ADDED
Binary file
|
assets/images/icons/iceskating.png
ADDED
Binary file
|
assets/images/icons/info.png
ADDED
Binary file
|
assets/images/icons/jewelry.png
ADDED
Binary file
|
assets/images/icons/jewishquarter.png
ADDED
Binary file
|
assets/images/icons/jogging.png
ADDED
Binary file
|
assets/images/icons/judo.png
ADDED
Binary file
|
assets/images/icons/justice.png
ADDED
Binary file
|
assets/images/icons/karate.png
ADDED
Binary file
|
assets/images/icons/karting.png
ADDED
Binary file
|
assets/images/icons/kayak.png
ADDED
Binary file
|
assets/images/icons/laboratory.png
ADDED
Binary file
|
assets/images/icons/lake.png
ADDED
Binary file
|
assets/images/icons/laundromat.png
ADDED
Binary file
|
assets/images/icons/left.png
ADDED
Binary file
|
assets/images/icons/leftthendown.png
ADDED
Binary file
|
assets/images/icons/leftthenup.png
ADDED
Binary file
|
assets/images/icons/library.png
ADDED
Binary file
|
assets/images/icons/lighthouse.png
ADDED
Binary file
|
assets/images/icons/liquor.png
ADDED
Binary file
|
assets/images/icons/lock.png
ADDED
Binary file
|
assets/images/icons/lockerrental.png
ADDED
Binary file
|
assets/images/icons/magicshow.png
ADDED
Binary file
|
assets/images/icons/mainroad.png
ADDED
Binary file
|
assets/images/icons/massage.png
ADDED
Binary file
|
assets/images/icons/military.png
ADDED
Binary file
|
assets/images/icons/mine.png
ADDED
Binary file
|
assets/images/icons/mobilephonetower.png
ADDED
Binary file
|
assets/images/icons/modernmonument.png
ADDED
Binary file
|
assets/images/icons/moderntower.png
ADDED
Binary file
|
assets/images/icons/monastery.png
ADDED
Binary file
|
assets/images/icons/monday.png
ADDED
Binary file
|
assets/images/icons/monument.png
ADDED
Binary file
|
assets/images/icons/mosque.png
ADDED
Binary file
|
assets/images/icons/motorbike.png
ADDED
Binary file
|
assets/images/icons/motorcycle.png
ADDED
Binary file
|
assets/images/icons/movierental.png
ADDED
Binary file
|
assets/images/icons/museum-archeological.png
ADDED
Binary file
|
assets/images/icons/museum-art.png
ADDED
Binary file
|
assets/images/icons/museum-crafts.png
ADDED
Binary file
|
assets/images/icons/museum-historical.png
ADDED
Binary file
|
assets/images/icons/museum-naval.png
ADDED
Binary file
|
assets/images/icons/museum-science.png
ADDED
Binary file
|
assets/images/icons/museum-war.png
ADDED
Binary file
|
assets/images/icons/museum.png
ADDED
Binary file
|
assets/images/icons/music-classical.png
ADDED
Binary file
|
assets/images/icons/music-hiphop.png
ADDED
Binary file
|
assets/images/icons/music-live.png
ADDED
Binary file
|
assets/images/icons/music-rock.png
ADDED
Binary file
|
assets/images/icons/music.png
ADDED
Binary file
|
assets/images/icons/nanny.png
ADDED
Binary file
|
assets/images/icons/newsagent.png
ADDED
Binary file
|
assets/images/icons/nordicski.png
ADDED
Binary file
|
assets/images/icons/nursery.png
ADDED
Binary file
|
assets/images/icons/observatory.png
ADDED
Binary file
|
assets/images/icons/oilpumpjack.png
ADDED
Binary file
|
assets/images/icons/olympicsite.png
ADDED
Binary file
|
assets/images/icons/ophthalmologist.png
ADDED
Binary file
|
assets/images/icons/pagoda.png
ADDED
Binary file
|
assets/images/icons/paint.png
ADDED
Binary file
|
assets/images/icons/palace.png
ADDED
Binary file
|
assets/images/icons/panoramic.png
ADDED
Binary file
|
assets/images/icons/panoramic180.png
ADDED
Binary file
|
assets/images/icons/park-urban.png
ADDED
Binary file
|
assets/images/icons/park.png
ADDED
Binary file
|
assets/images/icons/parkandride.png
ADDED
Binary file
|
assets/images/icons/parking.png
ADDED
Binary file
|
assets/images/icons/party.png
ADDED
Binary file
|
assets/images/icons/patisserie.png
ADDED
Binary file
|
assets/images/icons/pedestriancrossing.png
ADDED
Binary file
|
assets/images/icons/pens.png
ADDED
Binary file
|
assets/images/icons/perfumery.png
ADDED
Binary file
|
assets/images/icons/personalwatercraft.png
ADDED
Binary file
|
assets/images/icons/petroglyphs.png
ADDED
Binary file
|
assets/images/icons/pets.png
ADDED
Binary file
|
assets/images/icons/phones.png
ADDED
Binary file
|
assets/images/icons/photo.png
ADDED
Binary file
|
assets/images/icons/photodown.png
ADDED
Binary file
|
assets/images/icons/photodownleft.png
ADDED
Binary file
|
assets/images/icons/photodownright.png
ADDED
Binary file
|
assets/images/icons/photography.png
ADDED
Binary file
|
assets/images/icons/photoleft.png
ADDED
Binary file
|
assets/images/icons/photoright.png
ADDED
Binary file
|
assets/images/icons/photoup.png
ADDED
Binary file
|
assets/images/icons/photoupleft.png
ADDED
Binary file
|
assets/images/icons/photoupright.png
ADDED
Binary file
|
assets/images/icons/picnic.png
ADDED
Binary file
|
assets/images/icons/pin_blue.png
ADDED
Binary file
|
assets/images/icons/pin_green.png
ADDED
Binary file
|
assets/images/icons/pizza.png
ADDED
Binary file
|
assets/images/icons/places-unvisited.png
ADDED
Binary file
|
assets/images/icons/places-visited.png
ADDED
Binary file
|
assets/images/icons/planecrash.png
ADDED
Binary file
|
assets/images/icons/playground.png
ADDED
Binary file
|
assets/images/icons/poker.png
ADDED
Binary file
|
assets/images/icons/police.png
ADDED
Binary file
|
assets/images/icons/police2.png
ADDED
Binary file
|
assets/images/icons/pool-indoor.png
ADDED
Binary file
|
assets/images/icons/pool.png
ADDED
Binary file
|
assets/images/icons/port.png
ADDED
Binary file
|
assets/images/icons/postal.png
ADDED
Binary file
|
assets/images/icons/powerlinepole.png
ADDED
Binary file
|
assets/images/icons/powerplant.png
ADDED
Binary file
|
assets/images/icons/powersubstation.png
ADDED
Binary file
|
assets/images/icons/prison.png
ADDED
Binary file
|
assets/images/icons/publicart.png
ADDED
Binary file
|
assets/images/icons/racing.png
ADDED
Binary file
|
assets/images/icons/radiation.png
ADDED
Binary file
|
assets/images/icons/rain.png
ADDED
Binary file
|
assets/images/icons/rattlesnake.png
ADDED
Binary file
|
assets/images/icons/realestate.png
ADDED
Binary file
|
assets/images/icons/recycle.png
ADDED
Binary file
|
assets/images/icons/regroup.png
ADDED
Binary file
|
assets/images/icons/resort.png
ADDED
Binary file
|
assets/images/icons/restaurant-barbecue.png
ADDED
Binary file
|
assets/images/icons/restaurant-buffet.png
ADDED
Binary file
|
assets/images/icons/restaurant-fish.png
ADDED
Binary file
|
assets/images/icons/restaurant-romantic.png
ADDED
Binary file
|
assets/images/icons/restaurant.png
ADDED
Binary file
|
assets/images/icons/restaurantafrican.png
ADDED
Binary file
|
assets/images/icons/restaurantchinese.png
ADDED
Binary file
|
assets/images/icons/restaurantfishchips.png
ADDED
Binary file
|
assets/images/icons/restaurantgourmet.png
ADDED
Binary file
|
assets/images/icons/restaurantgreek.png
ADDED
Binary file
|
assets/images/icons/restaurantindian.png
ADDED
Binary file
|
assets/images/icons/restaurantitalian.png
ADDED
Binary file
|
assets/images/icons/restaurantjapanese.png
ADDED
Binary file
|
assets/images/icons/restaurantkebab.png
ADDED
Binary file
|
assets/images/icons/restaurantkorean.png
ADDED
Binary file
|
assets/images/icons/restaurantmediterranean.png
ADDED
Binary file
|
assets/images/icons/restaurantmexican.png
ADDED
Binary file
|
assets/images/icons/restaurantthai.png
ADDED
Binary file
|
assets/images/icons/restaurantturkish.png
ADDED
Binary file
|
assets/images/icons/revolution.png
ADDED
Binary file
|
assets/images/icons/right.png
ADDED
Binary file
|
assets/images/icons/rightthendown.png
ADDED
Binary file
|
assets/images/icons/rightthenup.png
ADDED
Binary file
|
assets/images/icons/riparian.png
ADDED
Binary file
|
assets/images/icons/ropescourse.png
ADDED
Binary file
|
assets/images/icons/rowboat.png
ADDED
Binary file
|
assets/images/icons/rugby.png
ADDED
Binary file
|
assets/images/icons/ruins.png
ADDED
Binary file
|
assets/images/icons/sailboat-sport.png
ADDED
Binary file
|
assets/images/icons/sailboat-tourism.png
ADDED
Binary file
|
assets/images/icons/sailboat.png
ADDED
Binary file
|
assets/images/icons/satursday.png
ADDED
Binary file
|
assets/images/icons/sauna.png
ADDED
Binary file
|
assets/images/icons/school.png
ADDED
Binary file
|
assets/images/icons/schrink.png
ADDED
Binary file
|
assets/images/icons/sciencecenter.png
ADDED
Binary file
|
assets/images/icons/seals.png
ADDED
Binary file
|
assets/images/icons/seniorsite.png
ADDED
Binary file
|
assets/images/icons/shelter-picnic.png
ADDED
Binary file
|
assets/images/icons/shelter-sleeping.png
ADDED
Binary file
|
assets/images/icons/shoes.png
ADDED
Binary file
|
assets/images/icons/shoppingmall.png
ADDED
Binary file
|
assets/images/icons/shore.png
ADDED
Binary file
|
assets/images/icons/shower.png
ADDED
Binary file
|
assets/images/icons/sight.png
ADDED
Binary file
|
assets/images/icons/skateboarding.png
ADDED
Binary file
|
assets/images/icons/skiing.png
ADDED
Binary file
|
assets/images/icons/skijump.png
ADDED
Binary file
|
assets/images/icons/skilift.png
ADDED
Binary file
|
assets/images/icons/smallcity.png
ADDED
Binary file
|
assets/images/icons/smokingarea.png
ADDED
Binary file
|
assets/images/icons/sneakers.png
ADDED
Binary file
|
assets/images/icons/snow.png
ADDED
Binary file
|
assets/images/icons/snowboarding.png
ADDED
Binary file
|
assets/images/icons/snowmobiling.png
ADDED
Binary file
|
assets/images/icons/snowshoeing.png
ADDED
Binary file
|
assets/images/icons/soccer.png
ADDED
Binary file
|
assets/images/icons/soccer2.png
ADDED
Binary file
|
assets/images/icons/spaceport.png
ADDED
Binary file
|
assets/images/icons/speed100.png
ADDED
Binary file
|
assets/images/icons/speed110.png
ADDED
Binary file
|
assets/images/icons/speed120.png
ADDED
Binary file
|
assets/images/icons/speed130.png
ADDED
Binary file
|
assets/images/icons/speed20.png
ADDED
Binary file
|
assets/images/icons/speed30.png
ADDED
Binary file
|
assets/images/icons/speed40.png
ADDED
Binary file
|
assets/images/icons/speed50.png
ADDED
Binary file
|
assets/images/icons/speed60.png
ADDED
Binary file
|
assets/images/icons/speed70.png
ADDED
Binary file
|
assets/images/icons/speed80.png
ADDED
Binary file
|
assets/images/icons/speed90.png
ADDED
Binary file
|
assets/images/icons/speedhump.png
ADDED
Binary file
|
assets/images/icons/spelunking.png
ADDED
Binary file
|
assets/images/icons/stadium.png
ADDED
Binary file
|
assets/images/icons/statue.png
ADDED
Binary file
|
assets/images/icons/steamtrain.png
ADDED
Binary file
|
assets/images/icons/stop.png
ADDED
Binary file
|
assets/images/icons/stoplight.png
ADDED
Binary file
|
assets/images/icons/strike.png
ADDED
Binary file
|
assets/images/icons/strike1.png
ADDED
Binary file
|
assets/images/icons/subway.png
ADDED
Binary file
|
assets/images/icons/sun.png
ADDED
Binary file
|
assets/images/icons/sunday.png
ADDED
Binary file
|
assets/images/icons/supermarket.png
ADDED
Binary file
|
assets/images/icons/surfing.png
ADDED
Binary file
|
assets/images/icons/suv.png
ADDED
Binary file
|
assets/images/icons/synagogue.png
ADDED
Binary file
|
assets/images/icons/tailor.png
ADDED
Binary file
|
assets/images/icons/tapas.png
ADDED
Binary file
|
assets/images/icons/taxi.png
ADDED
Binary file
|
assets/images/icons/taxiway.png
ADDED
Binary file
|
assets/images/icons/teahouse.png
ADDED
Binary file
|
assets/images/icons/telephone.png
ADDED
Binary file
|
assets/images/icons/templehindu.png
ADDED
Binary file
|
assets/images/icons/tennis.png
ADDED
Binary file
|
assets/images/icons/tennis2.png
ADDED
Binary file
|
assets/images/icons/tent.png
ADDED
Binary file
|
assets/images/icons/terrace.png
ADDED
Binary file
|
assets/images/icons/text.png
ADDED
Binary file
|
assets/images/icons/textiles.png
ADDED
Binary file
|
assets/images/icons/theater.png
ADDED
Binary file
|
assets/images/icons/themepark.png
ADDED
Binary file
|
assets/images/icons/thunder.png
ADDED
Binary file
|
assets/images/icons/thursday.png
ADDED
Binary file
|
assets/images/icons/toilets.png
ADDED
Binary file
|
assets/images/icons/tollstation.png
ADDED
Binary file
|
assets/images/icons/tools.png
ADDED
Binary file
|
assets/images/icons/tower.png
ADDED
Binary file
|
assets/images/icons/toys.png
ADDED
Binary file
|
assets/images/icons/trafficenforcementcamera.png
ADDED
Binary file
|
assets/images/icons/train.png
ADDED
Binary file
|
assets/images/icons/tram.png
ADDED
Binary file
|
assets/images/icons/trash.png
ADDED
Binary file
|
assets/images/icons/truck.png
ADDED
Binary file
|
assets/images/icons/tuesday.png
ADDED
Binary file
|
assets/images/icons/tunnel.png
ADDED
Binary file
|
assets/images/icons/turnleft.png
ADDED
Binary file
|
assets/images/icons/turnright.png
ADDED
Binary file
|
assets/images/icons/university.png
ADDED
Binary file
|
assets/images/icons/up.png
ADDED
Binary file
|
assets/images/icons/upleft.png
ADDED
Binary file
|
assets/images/icons/upright.png
ADDED
Binary file
|
assets/images/icons/upthenleft.png
ADDED
Binary file
|
assets/images/icons/upthenright.png
ADDED
Binary file
|
assets/images/icons/usfootball.png
ADDED
Binary file
|
assets/images/icons/vespa.png
ADDED
Binary file
|
assets/images/icons/vet.png
ADDED
Binary file
|
assets/images/icons/video.png
ADDED
Binary file
|
assets/images/icons/videogames.png
ADDED
Binary file
|
assets/images/icons/villa-tourism.png
ADDED
Binary file
|
assets/images/icons/villa.png
ADDED
Binary file
|
assets/images/icons/waitingroom.png
ADDED
Binary file
|
assets/images/icons/water.png
ADDED
Binary file
|
assets/images/icons/waterfall.png
ADDED
Binary file
|
assets/images/icons/watermill.png
ADDED
Binary file
|
assets/images/icons/waterpark.png
ADDED
Binary file
|
assets/images/icons/waterskiing.png
ADDED
Binary file
|
assets/images/icons/watertower.png
ADDED
Binary file
|
assets/images/icons/waterwell.png
ADDED
Binary file
|
assets/images/icons/waterwellpump.png
ADDED
Binary file
|
assets/images/icons/wedding.png
ADDED
Binary file
|
assets/images/icons/wednesday.png
ADDED
Binary file
|
assets/images/icons/wetland.png
ADDED
Binary file
|
assets/images/icons/white1.png
ADDED
Binary file
|
assets/images/icons/white20.png
ADDED
Binary file
|
assets/images/icons/wifi.png
ADDED
Binary file
|
assets/images/icons/windmill.png
ADDED
Binary file
|
assets/images/icons/windsurfing.png
ADDED
Binary file
|
assets/images/icons/windturbine.png
ADDED
Binary file
|
assets/images/icons/winery.png
ADDED
Binary file
|
assets/images/icons/wineyard.png
ADDED
Binary file
|
assets/images/icons/workoffice.png
ADDED
Binary file
|
assets/images/icons/world.png
ADDED
Binary file
|
assets/images/icons/worldheritagesite.png
ADDED
Binary file
|
assets/images/icons/yoga.png
ADDED
Binary file
|
assets/images/icons/youthhostel.png
ADDED
Binary file
|
assets/images/icons/zipline.png
ADDED
Binary file
|
assets/images/icons/zoo.png
ADDED
Binary file
|
assets/images/list.png
ADDED
Binary file
|
assets/images/loader.gif
ADDED
Binary file
|
assets/images/nav.png
ADDED
Binary file
|
assets/images/print.png
ADDED
Binary file
|
assets/images/sort_asc.png
ADDED
Binary file
|
assets/images/sort_asc_disabled.png
ADDED
Binary file
|
assets/images/sort_both.png
ADDED
Binary file
|
assets/images/sort_desc.png
ADDED
Binary file
|
assets/images/sort_desc_disabled.png
ADDED
Binary file
|
assets/images/wpgmp-toggle-sprite.png
ADDED
Binary file
|
assets/js/backend.js
ADDED
@@ -0,0 +1,4 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
function send_icon_to_map(t,e){wpgmp_image_id=jQuery("#"+e),jQuery(wpgmp_image_id).find(".remove_image").show(),jQuery(wpgmp_image_id).find("img.selected_image").attr("src",t);var r=jQuery(wpgmp_image_id).find(".choose_image").data("target");jQuery(wpgmp_image_id).find('input[name="'+r+'"]').val(t),jQuery("#temp_image").remove(),tb_remove()}function ClusterIcon(t,e){t.getMarkerClusterer().extend(ClusterIcon,google.maps.OverlayView),this.cluster_=t,this.className_=t.getMarkerClusterer().getClusterClass(),this.styles_=e,this.center_=null,this.div_=null,this.sums_=null,this.visible_=!1,this.setMap(t.getMap())}function Cluster(t){this.markerClusterer_=t,this.map_=t.getMap(),this.gridSize_=t.getGridSize(),this.minClusterSize_=t.getMinimumClusterSize(),this.averageCenter_=t.getAverageCenter(),this.markers_=[],this.center_=null,this.bounds_=null,this.clusterIcon_=new ClusterIcon(this,t.getStyles())}function MarkerClusterer(t,e,r){this.extend(MarkerClusterer,google.maps.OverlayView),e=e||[],r=r||{},this.markers_=[],this.clusters_=[],this.listeners_=[],this.activeMap_=null,this.ready_=!1,this.gridSize_=r.gridSize||60,this.minClusterSize_=r.minimumClusterSize||2,this.maxZoom_=r.maxZoom||null,this.styles_=r.styles||[],this.title_=r.title||"",this.zoomOnClick_=!0,void 0!==r.zoomOnClick&&(this.zoomOnClick_=r.zoomOnClick),this.averageCenter_=!1,void 0!==r.averageCenter&&(this.averageCenter_=r.averageCenter),this.ignoreHidden_=!1,void 0!==r.ignoreHidden&&(this.ignoreHidden_=r.ignoreHidden),this.enableRetinaIcons_=!1,void 0!==r.enableRetinaIcons&&(this.enableRetinaIcons_=r.enableRetinaIcons),this.imagePath_=r.imagePath||MarkerClusterer.IMAGE_PATH,this.imageExtension_=r.imageExtension||MarkerClusterer.IMAGE_EXTENSION,this.imageSizes_=r.imageSizes||MarkerClusterer.IMAGE_SIZES,this.calculator_=r.calculator||MarkerClusterer.CALCULATOR,this.batchSize_=r.batchSize||MarkerClusterer.BATCH_SIZE,this.batchSizeIE_=r.batchSizeIE||MarkerClusterer.BATCH_SIZE_IE,this.clusterClass_=r.clusterClass||"cluster",-1!==navigator.userAgent.toLowerCase().indexOf("msie")&&(this.batchSize_=this.batchSizeIE_),this.setupStyles_(),this.addMarkers(e,!0),this.setMap(t)}jQuery(document).ready(function(t){var e="";t("body").on("click",".repeat_button",function(){for(var e=t(this).parent().parent(),r=t(e).clone(),n=t(r).find("input[type='text']"),a=0;a<n.length;a++){var i=t(n[a]).attr("name"),s=new RegExp(/\[([0-9]+)\]/i),o=s.exec(i),l=parseInt(o[1])+1,u=i.replace(/\[([0-9]+)\]/i,"["+l+"]");t(n[a]).attr("name",u)}t(r).find("input[type='text']").val(""),t(e).find(".repeat_button").text("Remove"),t(e).find(".repeat_button").removeClass("repeat_button").addClass("repeat_remove_button"),t(e).after(t(r))}),t("body").on("click",".repeat_remove_button",function(){var e=t(this).parent().parent(),r=t(e).clone();t(e).remove();var n=t(r).find("input[type='text']");t.each(n,function(){var e=t(this).attr("name"),r=e.replace(/\[([0-9]+)\]/i,"");t.each(t("*[name^='"+r+"']"),function(r){e=t(this).attr("name");var n=e.replace(/\[([0-9]+)\]/i,"["+r+"]");t(this).attr("name",n)})})}),t("span.delete a").click(function(){return confirm("Are you sure to delete item?")?!0:!1}),t("div.wpgmp_form_horizontal .wpgmp_add_more_fields").click(function(){var e=t(".form-group").length+1,r=t('<div class="row form-group"><div class="col-md-8"><input placeholder="Enter name here..." class="form-control" type="text" name="name[]" id="txtbox'+e+'" /></div><div class="col-md-2"><a href="javascript:void(0);" class="btn btn-danger btn-xs wpgmp_remove_more_fields">Remove</a></div></div>');return r.hide(),t(".form-group:last").after(r),r.fadeIn("slow"),!1}),t("div.wpgmp_form_horizontal").on("click",".wpgmp_remove_more_fields",function(){var e=confirm("Are you sure you want to delete ? ");if(1==e){var r=t(this).attr("id");return t(this).parent().parent().css("background-color","#FF6C6C"),t(this).parent().parent().css("padding-top","5px"),t(this).parent().parent().fadeOut("slow",function(){t(this).remove(),t(".label-numbers").each(function(e){t(this).text(e+1)})}),jQuery.ajax({type:"POST",url:wpgmp_local.urlforajax,data:{action:"wpgmp_ajax_operation",id:r},beforeSend:function(){},success:function(){}}),!1}return!1}),window.send_to_editor_default=window.send_to_editor,t(".choose_image").click(function(){var r="icon_hidden_input";return e=t(this).parent().parent().attr("id",r),window.send_to_editor=window.attach_image,tb_show("","media-upload.php?post_ID=0&target="+r+"&type=image&TB_iframe=true"),!1}),window.attach_image=function(r){t("body").append('<div id="temp_image">'+r+"</div>");var n=t("#temp_image").find("img");imgurl=n.attr("src"),imgclass=n.attr("class"),imgid=parseInt(imgclass.replace(/\D/g,""),10),t(e).find(".remove_image").show(),t(e).find("img.selected_image").attr("src",imgurl);var a=t(e).find(".choose_image").data("target");t(e).find('input[name="'+a+'"]').val(imgurl);try{tb_remove()}catch(i){}t("#temp_image").remove(),window.send_to_editor=window.send_to_editor_default},t(".remove_image").click(function(){return e=t(this).parent().parent(),t(e).find(".selected_image").attr("src",""),t(e).find('input[name="'+t(this).data("target")+'"]').val(""),t(this).hide(),!1}),t(".wpgmp_check_backup").click(function(){var e=confirm("Overwrite existing google maps database?.");if(1==e){var r=t(this).data("backup");return t(this).closest("form").find("input[name='row_id']").val(r),t(this).closest("form").find("input[name='operation']").val("import_backup"),t(this).closest("form").submit(),!0}return!1}),t("select[name='map_id']").change(function(){t(this).closest("form").submit()}),t("select[name='filter_location']").change(function(e){e.preventDefault();var r=t(this).val();r>0?(t("tr[class^='filter_group_cat']").hide(),t(".filter_group_cat"+t(this).val()).show("slow")):t("tr[class^='filter_group_cat']").show("slow")}),t(".wpgmp_search_input").keyup(function(){map_id=t(this).attr("rel"),t(".wpgmp_locations_listing[rel='"+map_id+"']").addClass("wpgmp_loading"),wpgmp_filter_locations(map_id,1)}),t(".wpgmp_toggle_container").click(function(){t(".wpgmp_toggle_main_container").toggle("slow"),t(this).text("Hide"==t(this).text()?"Show":"Hide")}),t(".wpgmp_mcurrent_loction").click(function(){wpgmp_get_current_location()}),t(".wpgmp-select-all").click(function(){var e=t(".wpgmp-select-all").prop("checked");e?t(this).closest("table").find(".wpgmp-location-checkbox").prop("checked",!0):t(this).closest("table").find(".wpgmp-location-checkbox").prop("checked",!1)}),t(".wpgmp-location-checkbox").click(function(){t(".wpgmp-location-checkbox").length==t(".wpgmp-location-checkbox:checked").length?t(".wpgmp-select-all").prop("checked",!0):t(".wpgmp-select-all").prop("checked",!1)});{var r=t("#wpgmp_google_map_data_table").dataTable({lengthMenu:[[10,25,50,100,200,500,-1],[10,25,50,100,200,500,"All"]],order:[[1,"desc"]],aoColumns:[{sWidth:"5%",bSortable:!1},{sWidth:"40%"},{sWidth:"30%"},{sWidth:"20%"}]});t("#wpgmp_google_map_route_data_table").dataTable({lengthMenu:[[10,25,50,100,200,500,-1],[10,25,50,100,200,500,"All"]],aoColumns:[{sWidth:"10%"},{sWidth:"35%"},{sWidth:"35%"},{sWidth:"20%"}]})}t('input[name="save_entity_data"]').click(function(){var e=r.$('input[type="checkbox"]:checked'),n=[];return e.length>0&&(t.each(e,function(e,r){n.push(t(r).val())}),t('input[name="map_locations"]').val(n)),!0}),t('select[name="select_all"]').change(function(){"select_all"==t(this).val()?t('input[name="map_locations[]"]').attr("checked",!0):t('input[name="map_locations[]"]').attr("checked",!1)}),t('input[name="save_route_data"]').click(function(){var e=r.$('input[type="checkbox"]:checked'),n=[];return e.length>0&&(t.each(e,function(e,r){n.push(t(r).val())}),t('input[name="route_way_points"]').val(n)),!0}),t(".switch_onoff").change(function(){var e=t(this).data("target");"radio"==t(this).attr("type")&&(t(e).closest(".form-group").hide(),e+="_"+t(this).val()),t(this).is(":checked")?t(e).closest(".form-group").show():(t(e).closest(".form-group").hide(),t(e).hasClass("switch_onoff")&&(t(e).attr("checked",!1),t(e).trigger("change")))}),t.each(t(".switch_onoff"),function(){1==t(this).is(":checked")&&t(this).trigger("change")}),t(".wpgmp-overview .color").wpColorPicker()}),ClusterIcon.prototype.onAdd=function(){var t,e,r=this;this.div_=document.createElement("div"),this.div_.className=this.className_,this.visible_&&this.show(),this.getPanes().overlayMouseTarget.appendChild(this.div_),this.boundsChangedListener_=google.maps.event.addListener(this.getMap(),"bounds_changed",function(){e=t}),google.maps.event.addDomListener(this.div_,"mousedown",function(){t=!0,e=!1}),google.maps.event.addDomListener(this.div_,"click",function(n){if(t=!1,!e){var a,i,s=r.cluster_.getMarkerClusterer();google.maps.event.trigger(s,"click",r.cluster_),google.maps.event.trigger(s,"clusterclick",r.cluster_),s.getZoomOnClick()&&(i=s.getMaxZoom(),a=r.cluster_.getBounds(),s.getMap().fitBounds(a),setTimeout(function(){s.getMap().fitBounds(a),null!==i&&s.getMap().getZoom()>i&&s.getMap().setZoom(i+1)},100)),n.cancelBubble=!0,n.stopPropagation&&n.stopPropagation()}}),google.maps.event.addDomListener(this.div_,"mouseover",function(){var t=r.cluster_.getMarkerClusterer();google.maps.event.trigger(t,"mouseover",r.cluster_)}),google.maps.event.addDomListener(this.div_,"mouseout",function(){var t=r.cluster_.getMarkerClusterer();google.maps.event.trigger(t,"mouseout",r.cluster_)})},ClusterIcon.prototype.onRemove=function(){this.div_&&this.div_.parentNode&&(this.hide(),google.maps.event.removeListener(this.boundsChangedListener_),google.maps.event.clearInstanceListeners(this.div_),this.div_.parentNode.removeChild(this.div_),this.div_=null)},ClusterIcon.prototype.draw=function(){if(this.visible_){var t=this.getPosFromLatLng_(this.center_);this.div_.style.top=t.y+"px",this.div_.style.left=t.x+"px"}},ClusterIcon.prototype.hide=function(){this.div_&&(this.div_.style.display="none"),this.visible_=!1},ClusterIcon.prototype.show=function(){if(this.div_){var t="",e=this.backgroundPosition_.split(" "),r=parseInt(e[0].replace(/^\s+|\s+$/g,""),10),n=parseInt(e[1].replace(/^\s+|\s+$/g,""),10),a=this.getPosFromLatLng_(this.center_);this.div_.style.cssText=this.createCss(a),t="<img src='"+this.url_+"' style='position: absolute; top: "+n+"px; left: "+r+"px; ",this.cluster_.getMarkerClusterer().enableRetinaIcons_||(t+="clip: rect("+-1*n+"px, "+(-1*r+this.width_)+"px, "+(-1*n+this.height_)+"px, "+-1*r+"px);"),t+="'>",this.div_.innerHTML=t+"<div style='position: absolute;top: "+this.anchorText_[0]+"px;left: "+this.anchorText_[1]+"px;color: "+this.textColor_+";font-size: "+this.textSize_+"px;font-family: "+this.fontFamily_+";font-weight: "+this.fontWeight_+";font-style: "+this.fontStyle_+";text-decoration: "+this.textDecoration_+";text-align: center;width: "+this.width_+"px;line-height:"+this.height_+"px;'>"+this.sums_.text+"</div>",this.div_.title="undefined"==typeof this.sums_.title||""===this.sums_.title?this.cluster_.getMarkerClusterer().getTitle():this.sums_.title,this.div_.style.display=""}this.visible_=!0},ClusterIcon.prototype.useStyle=function(t){this.sums_=t;var e=Math.max(0,t.index-1);e=Math.min(this.styles_.length-1,e);var r=this.styles_[e];this.url_=r.url,this.height_=r.height,this.width_=r.width,this.anchorText_=r.anchorText||[0,0],this.anchorIcon_=r.anchorIcon||[parseInt(this.height_/2,10),parseInt(this.width_/2,10)],this.textColor_=r.textColor||"black",this.textSize_=r.textSize||11,this.textDecoration_=r.textDecoration||"none",this.fontWeight_=r.fontWeight||"bold",this.fontStyle_=r.fontStyle||"normal",this.fontFamily_=r.fontFamily||"Arial,sans-serif",this.backgroundPosition_=r.backgroundPosition||"0 0"},ClusterIcon.prototype.setCenter=function(t){this.center_=t},ClusterIcon.prototype.createCss=function(t){var e=[];return e.push("cursor: pointer;"),e.push("position: absolute; top: "+t.y+"px; left: "+t.x+"px;"),e.push("width: "+this.width_+"px; height: "+this.height_+"px;"),e.join("")},ClusterIcon.prototype.getPosFromLatLng_=function(t){var e=this.getProjection().fromLatLngToDivPixel(t);return e.x-=this.anchorIcon_[1],e.y-=this.anchorIcon_[0],e.x=parseInt(e.x,10),e.y=parseInt(e.y,10),e},Cluster.prototype.getSize=function(){return this.markers_.length},Cluster.prototype.getMarkers=function(){return this.markers_},Cluster.prototype.getCenter=function(){return this.center_},Cluster.prototype.getMap=function(){return this.map_},Cluster.prototype.getMarkerClusterer=function(){return this.markerClusterer_},Cluster.prototype.getBounds=function(){var t,e=new google.maps.LatLngBounds(this.center_,this.center_),r=this.getMarkers();for(t=0;t<r.length;t++)e.extend(r[t].getPosition());return e},Cluster.prototype.remove=function(){this.clusterIcon_.setMap(null),this.markers_=[],delete this.markers_},Cluster.prototype.addMarker=function(t){var e,r,n;if(this.isMarkerAlreadyAdded_(t))return!1;if(this.center_){if(this.averageCenter_){var a=this.markers_.length+1,i=(this.center_.lat()*(a-1)+t.getPosition().lat())/a,s=(this.center_.lng()*(a-1)+t.getPosition().lng())/a;this.center_=new google.maps.LatLng(i,s),this.calculateBounds_()}}else this.center_=t.getPosition(),this.calculateBounds_();if(t.isAdded=!0,this.markers_.push(t),r=this.markers_.length,n=this.markerClusterer_.getMaxZoom(),null!==n&&this.map_.getZoom()>n)t.getMap()!==this.map_&&t.setMap(this.map_);else if(r<this.minClusterSize_)t.getMap()!==this.map_&&t.setMap(this.map_);else if(r===this.minClusterSize_)for(e=0;r>e;e++)this.markers_[e].setMap(null);else t.setMap(null);return this.updateIcon_(),!0},Cluster.prototype.isMarkerInClusterBounds=function(t){return this.bounds_.contains(t.getPosition())},Cluster.prototype.calculateBounds_=function(){var t=new google.maps.LatLngBounds(this.center_,this.center_);this.bounds_=this.markerClusterer_.getExtendedBounds(t)},Cluster.prototype.updateIcon_=function(){var t=this.markers_.length,e=this.markerClusterer_.getMaxZoom();if(null!==e&&this.map_.getZoom()>e)return void this.clusterIcon_.hide();if(t<this.minClusterSize_)return void this.clusterIcon_.hide();var r=this.markerClusterer_.getStyles().length,n=this.markerClusterer_.getCalculator()(this.markers_,r);this.clusterIcon_.setCenter(this.center_),this.clusterIcon_.useStyle(n),this.clusterIcon_.show()},Cluster.prototype.isMarkerAlreadyAdded_=function(t){var e;if(this.markers_.indexOf)return-1!==this.markers_.indexOf(t);for(e=0;e<this.markers_.length;e++)if(t===this.markers_[e])return!0;return!1},MarkerClusterer.prototype.onAdd=function(){var t=this;this.activeMap_=this.getMap(),this.ready_=!0,this.repaint(),this.listeners_=[google.maps.event.addListener(this.getMap(),"zoom_changed",function(){t.resetViewport_(!1),(this.getZoom()===(this.get("minZoom")||0)||this.getZoom()===this.get("maxZoom"))&&google.maps.event.trigger(this,"idle")}),google.maps.event.addListener(this.getMap(),"idle",function(){t.redraw_()})]},MarkerClusterer.prototype.onRemove=function(){var t;for(t=0;t<this.markers_.length;t++)this.markers_[t].getMap()!==this.activeMap_&&this.markers_[t].setMap(this.activeMap_);for(t=0;t<this.clusters_.length;t++)this.clusters_[t].remove();for(this.clusters_=[],t=0;t<this.listeners_.length;t++)google.maps.event.removeListener(this.listeners_[t]);this.listeners_=[],this.activeMap_=null,this.ready_=!1},MarkerClusterer.prototype.draw=function(){},MarkerClusterer.prototype.setupStyles_=function(){var t,e;if(!(this.styles_.length>0))for(t=0;t<this.imageSizes_.length;t++)e=this.imageSizes_[t],this.styles_.push({url:this.imagePath_+(t+1)+"."+this.imageExtension_,height:e,width:e})},MarkerClusterer.prototype.fitMapToMarkers=function(){var t,e=this.getMarkers(),r=new google.maps.LatLngBounds;for(t=0;t<e.length;t++)r.extend(e[t].getPosition());this.getMap().fitBounds(r)},MarkerClusterer.prototype.getGridSize=function(){return this.gridSize_},MarkerClusterer.prototype.setGridSize=function(t){this.gridSize_=t},MarkerClusterer.prototype.getMinimumClusterSize=function(){return this.minClusterSize_},MarkerClusterer.prototype.setMinimumClusterSize=function(t){this.minClusterSize_=t},MarkerClusterer.prototype.getMaxZoom=function(){return this.maxZoom_},MarkerClusterer.prototype.setMaxZoom=function(t){this.maxZoom_=t},MarkerClusterer.prototype.getStyles=function(){return this.styles_},MarkerClusterer.prototype.setStyles=function(t){this.styles_=t},MarkerClusterer.prototype.getTitle=function(){return this.title_},MarkerClusterer.prototype.setTitle=function(t){this.title_=t},MarkerClusterer.prototype.getZoomOnClick=function(){return this.zoomOnClick_},MarkerClusterer.prototype.setZoomOnClick=function(t){this.zoomOnClick_=t},MarkerClusterer.prototype.getAverageCenter=function(){return this.averageCenter_},MarkerClusterer.prototype.setAverageCenter=function(t){this.averageCenter_=t},MarkerClusterer.prototype.getIgnoreHidden=function(){return this.ignoreHidden_},MarkerClusterer.prototype.setIgnoreHidden=function(t){this.ignoreHidden_=t},MarkerClusterer.prototype.getEnableRetinaIcons=function(){return this.enableRetinaIcons_},MarkerClusterer.prototype.setEnableRetinaIcons=function(t){this.enableRetinaIcons_=t},MarkerClusterer.prototype.getImageExtension=function(){return this.imageExtension_},MarkerClusterer.prototype.setImageExtension=function(t){this.imageExtension_=t},MarkerClusterer.prototype.getImagePath=function(){return this.imagePath_},MarkerClusterer.prototype.setImagePath=function(t){this.imagePath_=t},MarkerClusterer.prototype.getImageSizes=function(){return this.imageSizes_},MarkerClusterer.prototype.setImageSizes=function(t){this.imageSizes_=t},MarkerClusterer.prototype.getCalculator=function(){return this.calculator_},MarkerClusterer.prototype.setCalculator=function(t){this.calculator_=t},MarkerClusterer.prototype.getBatchSizeIE=function(){return this.batchSizeIE_},MarkerClusterer.prototype.setBatchSizeIE=function(t){this.batchSizeIE_=t},MarkerClusterer.prototype.getClusterClass=function(){return this.clusterClass_},MarkerClusterer.prototype.setClusterClass=function(t){this.clusterClass_=t},MarkerClusterer.prototype.getMarkers=function(){return this.markers_},MarkerClusterer.prototype.getTotalMarkers=function(){return this.markers_.length},MarkerClusterer.prototype.getClusters=function(){return this.clusters_},MarkerClusterer.prototype.getTotalClusters=function(){return this.clusters_.length},MarkerClusterer.prototype.addMarker=function(t,e){this.pushMarkerTo_(t),e||this.redraw_()},MarkerClusterer.prototype.addMarkers=function(t,e){var r;for(r in t)t.hasOwnProperty(r)&&this.pushMarkerTo_(t[r]);e||this.redraw_()},MarkerClusterer.prototype.pushMarkerTo_=function(t){if(t.getDraggable()){var e=this;google.maps.event.addListener(t,"dragend",function(){e.ready_&&(this.isAdded=!1,e.repaint())})}t.isAdded=!1,this.markers_.push(t)},MarkerClusterer.prototype.removeMarker=function(t,e){var r=this.removeMarker_(t);return!e&&r&&this.repaint(),r},MarkerClusterer.prototype.removeMarkers=function(t,e){var r,n,a=!1;for(r=0;r<t.length;r++)n=this.removeMarker_(t[r]),a=a||n;return!e&&a&&this.repaint(),a},MarkerClusterer.prototype.removeMarker_=function(t){var e,r=-1;if(this.markers_.indexOf)r=this.markers_.indexOf(t);else for(e=0;e<this.markers_.length;e++)if(t===this.markers_[e]){r=e;break}return-1===r?!1:(t.setMap(null),this.markers_.splice(r,1),!0)},MarkerClusterer.prototype.clearMarkers=function(){this.resetViewport_(!0),this.markers_=[]},MarkerClusterer.prototype.repaint=function(){var t=this.clusters_.slice();this.clusters_=[],this.resetViewport_(!1),this.redraw_(),setTimeout(function(){var e;for(e=0;e<t.length;e++)t[e].remove()},0)},MarkerClusterer.prototype.getExtendedBounds=function(t){var e=this.getProjection(),r=new google.maps.LatLng(t.getNorthEast().lat(),t.getNorthEast().lng()),n=new google.maps.LatLng(t.getSouthWest().lat(),t.getSouthWest().lng()),a=e.fromLatLngToDivPixel(r);a.x+=this.gridSize_,a.y-=this.gridSize_;var i=e.fromLatLngToDivPixel(n);i.x-=this.gridSize_,i.y+=this.gridSize_;var s=e.fromDivPixelToLatLng(a),o=e.fromDivPixelToLatLng(i);return t.extend(s),t.extend(o),t},MarkerClusterer.prototype.redraw_=function(){this.createClusters_(0)},MarkerClusterer.prototype.resetViewport_=function(t){var e,r;for(e=0;e<this.clusters_.length;e++)this.clusters_[e].remove();for(this.clusters_=[],e=0;e<this.markers_.length;e++)r=this.markers_[e],r.isAdded=!1,t&&r.setMap(null)},MarkerClusterer.prototype.distanceBetweenPoints_=function(t,e){var r=6371,n=(e.lat()-t.lat())*Math.PI/180,a=(e.lng()-t.lng())*Math.PI/180,i=Math.sin(n/2)*Math.sin(n/2)+Math.cos(t.lat()*Math.PI/180)*Math.cos(e.lat()*Math.PI/180)*Math.sin(a/2)*Math.sin(a/2),s=2*Math.atan2(Math.sqrt(i),Math.sqrt(1-i)),o=r*s;return o},MarkerClusterer.prototype.isMarkerInBounds_=function(t,e){return e.contains(t.getPosition())},MarkerClusterer.prototype.addToClosestCluster_=function(t){var e,r,n,a,i=4e4,s=null;for(e=0;e<this.clusters_.length;e++)n=this.clusters_[e],a=n.getCenter(),a&&(r=this.distanceBetweenPoints_(a,t.getPosition()),i>r&&(i=r,s=n));s&&s.isMarkerInClusterBounds(t)?s.addMarker(t):(n=new Cluster(this),n.addMarker(t),this.clusters_.push(n))},MarkerClusterer.prototype.createClusters_=function(t){var e,r,n,a=this;if(this.ready_){0===t&&(google.maps.event.trigger(this,"clusteringbegin",this),"undefined"!=typeof this.timerRefStatic&&(clearTimeout(this.timerRefStatic),delete this.timerRefStatic)),n=this.getMap().getZoom()>3?new google.maps.LatLngBounds(this.getMap().getBounds().getSouthWest(),this.getMap().getBounds().getNorthEast()):new google.maps.LatLngBounds(new google.maps.LatLng(85.02070771743472,-178.48388434375),new google.maps.LatLng(-85.08136444384544,178.00048865625));var i=this.getExtendedBounds(n),s=Math.min(t+this.batchSize_,this.markers_.length);for(e=t;s>e;e++)r=this.markers_[e],!r.isAdded&&this.isMarkerInBounds_(r,i)&&(!this.ignoreHidden_||this.ignoreHidden_&&r.getVisible())&&this.addToClosestCluster_(r);s<this.markers_.length?this.timerRefStatic=setTimeout(function(){a.createClusters_(s)},0):(delete this.timerRefStatic,google.maps.event.trigger(this,"clusteringend",this))}},MarkerClusterer.prototype.extend=function(t,e){return function(t){var e;for(e in t.prototype)this.prototype[e]=t.prototype[e];return this}.apply(t,[e])},MarkerClusterer.CALCULATOR=function(t,e){for(var r=0,n="",a=t.length.toString(),i=a;0!==i;)i=parseInt(i/10,10),r++;return r=Math.min(r,e),{text:a,index:r,title:n}},MarkerClusterer.BATCH_SIZE=2e3,MarkerClusterer.BATCH_SIZE_IE=500,MarkerClusterer.IMAGE_PATH="http://google-maps-utility-library-v3.googlecode.com/svn/trunk/markerclustererplus/images/m",MarkerClusterer.IMAGE_EXTENSION="png",MarkerClusterer.IMAGE_SIZES=[53,56,66,78,90],function(t,e,r){var n=function(n){function a(t){var e,r,i={};n.each(t,function(n){(e=n.match(/^([^A-Z]+?)([A-Z])/))&&-1!=="a aa ai ao as b fn i m o s ".indexOf(e[1]+" ")&&(r=n.replace(e[0],e[2].toLowerCase()),i[r]=n,"o"===e[1]&&a(t[n]))}),t._hungarianMap=i}function i(t,e,s){t._hungarianMap||a(t);var o;n.each(e,function(a){o=t._hungarianMap[a],o===r||!s&&e[o]!==r||("o"===o.charAt(0)?(e[o]||(e[o]={}),n.extend(!0,e[o],e[a]),i(t[o],e[o],s)):e[o]=e[a])})}function s(t){var e=Ve.defaults.oLanguage,r=t.sZeroRecords;!t.sEmptyTable&&r&&"No data available in table"===e.sEmptyTable&&Re(t,t,"sZeroRecords","sEmptyTable"),!t.sLoadingRecords&&r&&"Loading..."===e.sLoadingRecords&&Re(t,t,"sZeroRecords","sLoadingRecords"),t.sInfoThousands&&(t.sThousands=t.sInfoThousands),(t=t.sDecimal)&&Ue(t)}function o(t){if(fr(t,"ordering","bSort"),fr(t,"orderMulti","bSortMulti"),fr(t,"orderClasses","bSortClasses"),fr(t,"orderCellsTop","bSortCellsTop"),fr(t,"order","aaSorting"),fr(t,"orderFixed","aaSortingFixed"),fr(t,"paging","bPaginate"),fr(t,"pagingType","sPaginationType"),fr(t,"pageLength","iDisplayLength"),fr(t,"searching","bFilter"),"boolean"==typeof t.sScrollX&&(t.sScrollX=t.sScrollX?"100%":""),t=t.aoSearchCols)for(var e=0,r=t.length;r>e;e++)t[e]&&i(Ve.models.oSearch,t[e])}function l(t){fr(t,"orderable","bSortable"),fr(t,"orderData","aDataSort"),fr(t,"orderSequence","asSorting"),fr(t,"orderDataType","sortDataType");var e=t.aDataSort;e&&!n.isArray(e)&&(t.aDataSort=[e])}function u(t){var t=t.oBrowser,e=n("<div/>").css({position:"fixed",top:0,left:0,height:1,width:1,overflow:"hidden"}).append(n("<div/>").css({position:"absolute",top:1,left:1,width:100,overflow:"scroll"}).append(n('<div class="test"/>').css({width:"100%",height:10}))).appendTo("body"),r=e.find(".test");t.bScrollOversize=100===r[0].offsetWidth,t.bScrollbarLeft=1!==Math.round(r.offset().left),t.bBounding=e[0].getBoundingClientRect().width?!0:!1,e.remove()}function c(t,e,n,a,i,s){var o,l=!1;for(n!==r&&(o=n,l=!0);a!==i;)t.hasOwnProperty(a)&&(o=l?e(o,t[a],a,t):t[a],l=!0,a+=s);return o}function h(t,r){var a=Ve.defaults.column,i=t.aoColumns.length,a=n.extend({},Ve.models.oColumn,a,{nTh:r?r:e.createElement("th"),sTitle:a.sTitle?a.sTitle:r?r.innerHTML:"",aDataSort:a.aDataSort?a.aDataSort:[i],mData:a.mData?a.mData:i,idx:i});t.aoColumns.push(a),a=t.aoPreSearchCols,a[i]=n.extend({},Ve.models.oSearch,a[i]),d(t,i,n(r).data())}function d(t,e,a){var e=t.aoColumns[e],s=t.oClasses,o=n(e.nTh);if(!e.sWidthOrig){e.sWidthOrig=o.attr("width")||null;var u=(o.attr("style")||"").match(/width:\s*(\d+[pxem%]+)/);u&&(e.sWidthOrig=u[1])}a!==r&&null!==a&&(l(a),i(Ve.defaults.column,a),a.mDataProp!==r&&!a.mData&&(a.mData=a.mDataProp),a.sType&&(e._sManualType=a.sType),a.className&&!a.sClass&&(a.sClass=a.className),n.extend(e,a),Re(e,a,"sWidth","sWidthOrig"),a.iDataSort!==r&&(e.aDataSort=[a.iDataSort]),Re(e,a,"aDataSort"));var c=e.mData,h=x(c),d=e.mRender?x(e.mRender):null,a=function(t){return"string"==typeof t&&-1!==t.indexOf("@")};e._bAttrSrc=n.isPlainObject(c)&&(a(c.sort)||a(c.type)||a(c.filter)),e.fnGetData=function(t,e,n){var a=h(t,e,r,n);return d&&e?d(a,e,t,n):a},e.fnSetData=function(t,e,r){return T(c)(t,e,r)},"number"!=typeof c&&(t._rowReadObject=!0),t.oFeatures.bSort||(e.bSortable=!1,o.addClass(s.sSortableNone)),t=-1!==n.inArray("asc",e.asSorting),a=-1!==n.inArray("desc",e.asSorting),e.bSortable&&(t||a)?t&&!a?(e.sSortingClass=s.sSortableAsc,e.sSortingClassJUI=s.sSortJUIAscAllowed):!t&&a?(e.sSortingClass=s.sSortableDesc,e.sSortingClassJUI=s.sSortJUIDescAllowed):(e.sSortingClass=s.sSortable,e.sSortingClassJUI=s.sSortJUI):(e.sSortingClass=s.sSortableNone,e.sSortingClassJUI="")}function f(t){if(!1!==t.oFeatures.bAutoWidth){var e=t.aoColumns;me(t);for(var r=0,n=e.length;n>r;r++)e[r].nTh.style.width=e[r].sWidth}e=t.oScroll,(""!==e.sY||""!==e.sX)&&pe(t),Oe(t,null,"column-sizing",[t])}function p(t,e){var r=_(t,"bVisible");return"number"==typeof r[e]?r[e]:null}function g(t,e){var r=_(t,"bVisible"),r=n.inArray(e,r);return-1!==r?r:null}function m(t){return _(t,"bVisible").length}function _(t,e){var r=[];return n.map(t.aoColumns,function(t,n){t[e]&&r.push(n)}),r}function b(t){var e,n,a,i,s,o,l,u,c,h=t.aoColumns,d=t.aoData,f=Ve.ext.type.detect;for(e=0,n=h.length;n>e;e++)if(l=h[e],c=[],!l.sType&&l._sManualType)l.sType=l._sManualType;else if(!l.sType){for(a=0,i=f.length;i>a;a++){for(s=0,o=d.length;o>s&&(c[s]===r&&(c[s]=C(t,s,e,"type")),u=f[a](c[s],t),u||a===f.length-1)&&"html"!==u;s++);if(u){l.sType=u;break}}l.sType||(l.sType="string")}}function v(t,e,a,i){var s,o,l,u,c,d,f=t.aoColumns;if(e)for(s=e.length-1;s>=0;s--){d=e[s];var p=d.targets!==r?d.targets:d.aTargets;for(n.isArray(p)||(p=[p]),o=0,l=p.length;l>o;o++)if("number"==typeof p[o]&&0<=p[o]){for(;f.length<=p[o];)h(t);i(p[o],d)}else if("number"==typeof p[o]&&0>p[o])i(f.length+p[o],d);else if("string"==typeof p[o])for(u=0,c=f.length;c>u;u++)("_all"==p[o]||n(f[u].nTh).hasClass(p[o]))&&i(u,d)}if(a)for(s=0,t=a.length;t>s;s++)i(s,a[s])}function S(t,e,a,i){var s=t.aoData.length,o=n.extend(!0,{},Ve.models.oRow,{src:a?"dom":"data",idx:s});o._aData=e,t.aoData.push(o);for(var l=t.aoColumns,u=0,c=l.length;c>u;u++)a&&D(t,s,u,C(t,s,u)),l[u].sType=null;return t.aiDisplayMaster.push(s),e=t.rowIdFn(e),e!==r&&(t.aIds[e]=o),(a||!t.oFeatures.bDeferRender)&&P(t,s,a,i),s}function y(t,e){var r;return e instanceof n||(e=n(e)),e.map(function(e,n){return r=L(t,n),S(t,r.data,n,r.cells)})}function C(t,e,n,a){var i=t.iDraw,s=t.aoColumns[n],o=t.aoData[e]._aData,l=s.sDefaultContent,n=s.fnGetData(o,a,{settings:t,row:e,col:n});if(n===r)return t.iDrawError!=i&&null===l&&(Fe(t,0,"Requested unknown parameter "+("function"==typeof s.mData?"{function}":"'"+s.mData+"'")+" for row "+e,4),t.iDrawError=i),l;if(n!==o&&null!==n||null===l){if("function"==typeof n)return n.call(o)}else n=l;return null===n&&"display"==a?"":n}function D(t,e,r,n){t.aoColumns[r].fnSetData(t.aoData[e]._aData,n,{settings:t,row:e,col:r})}function w(t){return n.map(t.match(/(\\.|[^\.])+/g)||[""],function(t){return t.replace(/\\./g,".")})}function x(t){if(n.isPlainObject(t)){var e={};return n.each(t,function(t,r){r&&(e[t]=x(r))}),function(t,n,a,i){var s=e[n]||e._;return s!==r?s(t,n,a,i):t}}if(null===t)return function(t){return t};if("function"==typeof t)return function(e,r,n,a){return t(e,r,n,a)};if("string"==typeof t&&(-1!==t.indexOf(".")||-1!==t.indexOf("[")||-1!==t.indexOf("("))){var a=function(t,e,n){var i,s;if(""!==n){s=w(n);for(var o=0,l=s.length;l>o;o++){if(n=s[o].match(pr),i=s[o].match(gr),n){for(s[o]=s[o].replace(pr,""),""!==s[o]&&(t=t[s[o]]),i=[],s.splice(0,o+1),s=s.join("."),o=0,l=t.length;l>o;o++)i.push(a(t[o],e,s));t=n[0].substring(1,n[0].length-1),t=""===t?i:i.join(t);break}if(i)s[o]=s[o].replace(gr,""),t=t[s[o]]();else{if(null===t||t[s[o]]===r)return r;t=t[s[o]]}}}return t};return function(e,r){return a(e,r,t)}}return function(e){return e[t]}}function T(t){if(n.isPlainObject(t))return T(t._);if(null===t)return function(){};if("function"==typeof t)return function(e,r,n){t(e,"set",r,n)};if("string"==typeof t&&(-1!==t.indexOf(".")||-1!==t.indexOf("[")||-1!==t.indexOf("("))){var e=function(t,n,a){var i,a=w(a);i=a[a.length-1];for(var s,o,l=0,u=a.length-1;u>l;l++){if(s=a[l].match(pr),o=a[l].match(gr),s){for(a[l]=a[l].replace(pr,""),t[a[l]]=[],i=a.slice(),i.splice(0,l+1),s=i.join("."),o=0,u=n.length;u>o;o++)i={},e(i,n[o],s),t[a[l]].push(i);return}o&&(a[l]=a[l].replace(gr,""),t=t[a[l]](n)),(null===t[a[l]]||t[a[l]]===r)&&(t[a[l]]={}),t=t[a[l]]}i.match(gr)?t[i.replace(gr,"")](n):t[i.replace(pr,"")]=n};return function(r,n){return e(r,n,t)}}return function(e,r){e[t]=r}}function I(t){return lr(t.aoData,"_aData")}function k(t){t.aoData.length=0,t.aiDisplayMaster.length=0,t.aiDisplay.length=0}function M(t,e,n){for(var a=-1,i=0,s=t.length;s>i;i++)t[i]==e?a=i:t[i]>e&&t[i]--;-1!=a&&n===r&&t.splice(a,1)}function A(t,e,n,a){var i,s=t.aoData[e],o=function(r,n){for(;r.childNodes.length;)r.removeChild(r.firstChild);r.innerHTML=C(t,e,n,"display")};if("dom"!==n&&(n&&"auto"!==n||"dom"!==s.src)){var l=s.anCells;if(l)if(a!==r)o(l[a],a);else for(n=0,i=l.length;i>n;n++)o(l[n],n)}else s._aData=L(t,s,a,a===r?r:s._aData).data;if(s._aSortData=null,s._aFilterData=null,o=t.aoColumns,a!==r)o[a].sType=null;else{for(n=0,i=o.length;i>n;n++)o[n].sType=null;F(t,s)}}function L(t,e,a,i){var s,o,l,u=[],c=e.firstChild,h=0,d=t.aoColumns,f=t._rowReadObject,i=i||f?{}:[],p=function(t,e){if("string"==typeof t){var r=t.indexOf("@");-1!==r&&(r=t.substring(r+1),T(t)(i,e.getAttribute(r)))}},g=function(t){(a===r||a===h)&&(o=d[h],l=n.trim(t.innerHTML),o&&o._bAttrSrc?(T(o.mData._)(i,l),p(o.mData.sort,t),p(o.mData.type,t),p(o.mData.filter,t)):f?(o._setter||(o._setter=T(o.mData)),o._setter(i,l)):i[h]=l),h++};if(c)for(;c;)s=c.nodeName.toUpperCase(),("TD"==s||"TH"==s)&&(g(c),u.push(c)),c=c.nextSibling;else for(u=e.anCells,c=0,s=u.length;s>c;c++)g(u[c]);return(e=e.getAttribute("id"))&&T(t.rowId)(i,e),{data:i,cells:u}}function P(t,r,n,a){var i,s,o,l,u,c=t.aoData[r],h=c._aData,d=[];if(null===c.nTr){for(i=n||e.createElement("tr"),c.nTr=i,c.anCells=d,i._DT_RowIndex=r,F(t,c),l=0,u=t.aoColumns.length;u>l;l++)o=t.aoColumns[l],s=n?a[l]:e.createElement(o.sCellType),d.push(s),(!n||o.mRender||o.mData!==l)&&(s.innerHTML=C(t,r,l,"display")),o.sClass&&(s.className+=" "+o.sClass),o.bVisible&&!n?i.appendChild(s):!o.bVisible&&n&&s.parentNode.removeChild(s),o.fnCreatedCell&&o.fnCreatedCell.call(t.oInstance,s,C(t,r,l),h,r,l);
|
2 |
+
Oe(t,"aoRowCreatedCallback",null,[i,h,r])}c.nTr.setAttribute("role","row")}function F(t,e){var r=e.nTr,a=e._aData;if(r){var i=t.rowIdFn(a);i&&(r.id=i),a.DT_RowClass&&(i=a.DT_RowClass.split(" "),e.__rowc=e.__rowc?dr(e.__rowc.concat(i)):i,n(r).removeClass(e.__rowc.join(" ")).addClass(a.DT_RowClass)),a.DT_RowAttr&&n(r).attr(a.DT_RowAttr),a.DT_RowData&&n(r).data(a.DT_RowData)}}function R(t){var e,r,a,i,s,o=t.nTHead,l=t.nTFoot,u=0===n("th, td",o).length,c=t.oClasses,h=t.aoColumns;for(u&&(i=n("<tr/>").appendTo(o)),e=0,r=h.length;r>e;e++)s=h[e],a=n(s.nTh).addClass(s.sClass),u&&a.appendTo(i),t.oFeatures.bSort&&(a.addClass(s.sSortingClass),!1!==s.bSortable&&(a.attr("tabindex",t.iTabIndex).attr("aria-controls",t.sTableId),Ie(t,s.nTh,e))),s.sTitle!=a[0].innerHTML&&a.html(s.sTitle),Be(t,"header")(t,a,s,c);if(u&&N(t.aoHeader,o),n(o).find(">tr").attr("role","row"),n(o).find(">tr>th, >tr>td").addClass(c.sHeaderTH),n(l).find(">tr>th, >tr>td").addClass(c.sFooterTH),null!==l)for(t=t.aoFooter[0],e=0,r=t.length;r>e;e++)s=h[e],s.nTf=t[e].cell,s.sClass&&n(s.nTf).addClass(s.sClass)}function j(t,e,a){var i,s,o,l,u=[],c=[],h=t.aoColumns.length;if(e){for(a===r&&(a=!1),i=0,s=e.length;s>i;i++){for(u[i]=e[i].slice(),u[i].nTr=e[i].nTr,o=h-1;o>=0;o--)!t.aoColumns[o].bVisible&&!a&&u[i].splice(o,1);c.push([])}for(i=0,s=u.length;s>i;i++){if(t=u[i].nTr)for(;o=t.firstChild;)t.removeChild(o);for(o=0,e=u[i].length;e>o;o++)if(l=h=1,c[i][o]===r){for(t.appendChild(u[i][o].cell),c[i][o]=1;u[i+h]!==r&&u[i][o].cell==u[i+h][o].cell;)c[i+h][o]=1,h++;for(;u[i][o+l]!==r&&u[i][o].cell==u[i][o+l].cell;){for(a=0;h>a;a++)c[i+a][o+l]=1;l++}n(u[i][o].cell).attr("rowspan",h).attr("colspan",l)}}}}function H(t){var e=Oe(t,"aoPreDrawCallback","preDraw",[t]);if(-1!==n.inArray(!1,e))de(t,!1);else{var e=[],a=0,i=t.asStripeClasses,s=i.length,o=t.oLanguage,l=t.iInitDisplayStart,u="ssp"==We(t),c=t.aiDisplay;t.bDrawing=!0,l!==r&&-1!==l&&(t._iDisplayStart=u?l:l>=t.fnRecordsDisplay()?0:l,t.iInitDisplayStart=-1);var l=t._iDisplayStart,h=t.fnDisplayEnd();if(t.bDeferLoading)t.bDeferLoading=!1,t.iDraw++,de(t,!1);else if(u){if(!t.bDestroying&&!z(t))return}else t.iDraw++;if(0!==c.length)for(o=u?t.aoData.length:h,u=u?0:l;o>u;u++){var d=c[u],f=t.aoData[d];if(null===f.nTr&&P(t,d),d=f.nTr,0!==s){var p=i[a%s];f._sRowStripe!=p&&(n(d).removeClass(f._sRowStripe).addClass(p),f._sRowStripe=p)}Oe(t,"aoRowCallback",null,[d,f._aData,a,u]),e.push(d),a++}else a=o.sZeroRecords,1==t.iDraw&&"ajax"==We(t)?a=o.sLoadingRecords:o.sEmptyTable&&0===t.fnRecordsTotal()&&(a=o.sEmptyTable),e[0]=n("<tr/>",{"class":s?i[0]:""}).append(n("<td />",{valign:"top",colSpan:m(t),"class":t.oClasses.sRowEmpty}).html(a))[0];Oe(t,"aoHeaderCallback","header",[n(t.nTHead).children("tr")[0],I(t),l,h,c]),Oe(t,"aoFooterCallback","footer",[n(t.nTFoot).children("tr")[0],I(t),l,h,c]),i=n(t.nTBody),i.children().detach(),i.append(n(e)),Oe(t,"aoDrawCallback","draw",[t]),t.bSorted=!1,t.bFiltered=!1,t.bDrawing=!1}}function E(t,e){var r=t.oFeatures,n=r.bFilter;r.bSort&&we(t),n?Z(t,t.oPreviousSearch):t.aiDisplay=t.aiDisplayMaster.slice(),!0!==e&&(t._iDisplayStart=0),t._drawHold=e,H(t),t._drawHold=!1}function O(t){var e=t.oClasses,r=n(t.nTable),r=n("<div/>").insertBefore(r),a=t.oFeatures,i=n("<div/>",{id:t.sTableId+"_wrapper","class":e.sWrapper+(t.nTFoot?"":" "+e.sNoFooter)});t.nHolding=r[0],t.nTableWrapper=i[0],t.nTableReinsertBefore=t.nTable.nextSibling;for(var s,o,l,u,c,h,d=t.sDom.split(""),f=0;f<d.length;f++){if(s=null,o=d[f],"<"==o){if(l=n("<div/>")[0],u=d[f+1],"'"==u||'"'==u){for(c="",h=2;d[f+h]!=u;)c+=d[f+h],h++;"H"==c?c=e.sJUIHeader:"F"==c&&(c=e.sJUIFooter),-1!=c.indexOf(".")?(u=c.split("."),l.id=u[0].substr(1,u[0].length-1),l.className=u[1]):"#"==c.charAt(0)?l.id=c.substr(1,c.length-1):l.className=c,f+=h}i.append(l),i=n(l)}else if(">"==o)i=i.parent();else if("l"==o&&a.bPaginate&&a.bLengthChange)s=le(t);else if("f"==o&&a.bFilter)s=X(t);else if("r"==o&&a.bProcessing)s=he(t);else if("t"==o)s=fe(t);else if("i"==o&&a.bInfo)s=re(t);else if("p"==o&&a.bPaginate)s=ue(t);else if(0!==Ve.ext.feature.length)for(l=Ve.ext.feature,h=0,u=l.length;u>h;h++)if(o==l[h].cFeature){s=l[h].fnInit(t);break}s&&(l=t.aanFeatures,l[o]||(l[o]=[]),l[o].push(s),i.append(s))}r.replaceWith(i),t.nHolding=null}function N(t,e){var r,a,i,s,o,l,u,c,h,d,f=n(e).children("tr");for(t.splice(0,t.length),i=0,l=f.length;l>i;i++)t.push([]);for(i=0,l=f.length;l>i;i++)for(r=f[i],a=r.firstChild;a;){if("TD"==a.nodeName.toUpperCase()||"TH"==a.nodeName.toUpperCase()){for(c=1*a.getAttribute("colspan"),h=1*a.getAttribute("rowspan"),c=c&&0!==c&&1!==c?c:1,h=h&&0!==h&&1!==h?h:1,s=0,o=t[i];o[s];)s++;for(u=s,d=1===c?!0:!1,o=0;c>o;o++)for(s=0;h>s;s++)t[i+s][u+o]={cell:a,unique:d},t[i+s].nTr=r}a=a.nextSibling}}function B(t,e,r){var n=[];r||(r=t.aoHeader,e&&(r=[],N(r,e)));for(var e=0,a=r.length;a>e;e++)for(var i=0,s=r[e].length;s>i;i++)!r[e][i].unique||n[i]&&t.bSortCellsTop||(n[i]=r[e][i].cell);return n}function W(t,e,r){if(Oe(t,"aoServerParams","serverParams",[e]),e&&n.isArray(e)){var a={},i=/(.*?)\[\]$/;n.each(e,function(t,e){var r=e.name.match(i);r?(r=r[0],a[r]||(a[r]=[]),a[r].push(e.value)):a[e.name]=e.value}),e=a}var s,o=t.ajax,l=t.oInstance,u=function(e){Oe(t,null,"xhr",[t,e,t.jqXHR]),r(e)};if(n.isPlainObject(o)&&o.data){s=o.data;var c=n.isFunction(s)?s(e,t):s,e=n.isFunction(s)&&c?c:n.extend(!0,e,c);delete o.data}c={data:e,success:function(e){var r=e.error||e.sError;r&&Fe(t,0,r),t.json=e,u(e)},dataType:"json",cache:!1,type:t.sServerMethod,error:function(e,r){var a=Oe(t,null,"xhr",[t,null,t.jqXHR]);-1===n.inArray(!0,a)&&("parsererror"==r?Fe(t,0,"Invalid JSON response",1):4===e.readyState&&Fe(t,0,"Ajax error",7)),de(t,!1)}},t.oAjaxData=e,Oe(t,null,"preXhr",[t,e]),t.fnServerData?t.fnServerData.call(l,t.sAjaxSource,n.map(e,function(t,e){return{name:e,value:t}}),u,t):t.sAjaxSource||"string"==typeof o?t.jqXHR=n.ajax(n.extend(c,{url:o||t.sAjaxSource})):n.isFunction(o)?t.jqXHR=o.call(l,e,u,t):(t.jqXHR=n.ajax(n.extend(c,o)),o.data=s)}function z(t){return t.bAjaxDataGet?(t.iDraw++,de(t,!0),W(t,U(t),function(e){J(t,e)}),!1):!0}function U(t){var e,r,a,i,s=t.aoColumns,o=s.length,l=t.oFeatures,u=t.oPreviousSearch,c=t.aoPreSearchCols,h=[],d=De(t);e=t._iDisplayStart,r=!1!==l.bPaginate?t._iDisplayLength:-1;var f=function(t,e){h.push({name:t,value:e})};f("sEcho",t.iDraw),f("iColumns",o),f("sColumns",lr(s,"sName").join(",")),f("iDisplayStart",e),f("iDisplayLength",r);var p={draw:t.iDraw,columns:[],order:[],start:e,length:r,search:{value:u.sSearch,regex:u.bRegex}};for(e=0;o>e;e++)a=s[e],i=c[e],r="function"==typeof a.mData?"function":a.mData,p.columns.push({data:r,name:a.sName,searchable:a.bSearchable,orderable:a.bSortable,search:{value:i.sSearch,regex:i.bRegex}}),f("mDataProp_"+e,r),l.bFilter&&(f("sSearch_"+e,i.sSearch),f("bRegex_"+e,i.bRegex),f("bSearchable_"+e,a.bSearchable)),l.bSort&&f("bSortable_"+e,a.bSortable);return l.bFilter&&(f("sSearch",u.sSearch),f("bRegex",u.bRegex)),l.bSort&&(n.each(d,function(t,e){p.order.push({column:e.col,dir:e.dir}),f("iSortCol_"+t,e.col),f("sSortDir_"+t,e.dir)}),f("iSortingCols",d.length)),s=Ve.ext.legacy.ajax,null===s?t.sAjaxSource?h:p:s?h:p}function J(t,e){var n=V(t,e),a=e.sEcho!==r?e.sEcho:e.draw,i=e.iTotalRecords!==r?e.iTotalRecords:e.recordsTotal,s=e.iTotalDisplayRecords!==r?e.iTotalDisplayRecords:e.recordsFiltered;if(a){if(1*a<t.iDraw)return;t.iDraw=1*a}for(k(t),t._iRecordsTotal=parseInt(i,10),t._iRecordsDisplay=parseInt(s,10),a=0,i=n.length;i>a;a++)S(t,n[a]);t.aiDisplay=t.aiDisplayMaster.slice(),t.bAjaxDataGet=!1,H(t),t._bInitComplete||se(t,e),t.bAjaxDataGet=!0,de(t,!1)}function V(t,e){var a=n.isPlainObject(t.ajax)&&t.ajax.dataSrc!==r?t.ajax.dataSrc:t.sAjaxDataProp;return"data"===a?e.aaData||e[a]:""!==a?x(a)(e):e}function X(t){var r=t.oClasses,a=t.sTableId,i=t.oLanguage,s=t.oPreviousSearch,o=t.aanFeatures,l='<input type="search" class="'+r.sFilterInput+'"/>',u=i.sSearch,u=u.match(/_INPUT_/)?u.replace("_INPUT_",l):u+l,r=n("<div/>",{id:o.f?null:a+"_filter","class":r.sFilter}).append(n("<label/>").append(u)),o=function(){var e=this.value?this.value:"";e!=s.sSearch&&(Z(t,{sSearch:e,bRegex:s.bRegex,bSmart:s.bSmart,bCaseInsensitive:s.bCaseInsensitive}),t._iDisplayStart=0,H(t))},l=null!==t.searchDelay?t.searchDelay:"ssp"===We(t)?400:0,c=n("input",r).val(s.sSearch).attr("placeholder",i.sSearchPlaceholder).bind("keyup.DT search.DT input.DT paste.DT cut.DT",l?_e(o,l):o).bind("keypress.DT",function(t){return 13==t.keyCode?!1:void 0}).attr("aria-controls",a);return n(t.nTable).on("search.dt.DT",function(r,n){if(t===n)try{c[0]!==e.activeElement&&c.val(s.sSearch)}catch(a){}}),r[0]}function Z(t,e,n){var a=t.oPreviousSearch,i=t.aoPreSearchCols,s=function(t){a.sSearch=t.sSearch,a.bRegex=t.bRegex,a.bSmart=t.bSmart,a.bCaseInsensitive=t.bCaseInsensitive};if(b(t),"ssp"!=We(t)){for($(t,e.sSearch,n,e.bEscapeRegex!==r?!e.bEscapeRegex:e.bRegex,e.bSmart,e.bCaseInsensitive),s(e),e=0;e<i.length;e++)q(t,i[e].sSearch,e,i[e].bEscapeRegex!==r?!i[e].bEscapeRegex:i[e].bRegex,i[e].bSmart,i[e].bCaseInsensitive);G(t)}else s(e);t.bFiltered=!0,Oe(t,null,"search",[t])}function G(t){for(var e,r,n=Ve.ext.search,a=t.aiDisplay,i=0,s=n.length;s>i;i++){for(var o=[],l=0,u=a.length;u>l;l++)r=a[l],e=t.aoData[r],n[i](t,e._aFilterData,r,e._aData,l)&&o.push(r);a.length=0,a.push.apply(a,o)}}function q(t,e,r,n,a,i){if(""!==e)for(var s=t.aiDisplay,n=Q(e,n,a,i),a=s.length-1;a>=0;a--)e=t.aoData[s[a]]._aFilterData[r],n.test(e)||s.splice(a,1)}function $(t,e,r,n,a,i){var s,n=Q(e,n,a,i),a=t.oPreviousSearch.sSearch,i=t.aiDisplayMaster;if(0!==Ve.ext.search.length&&(r=!0),s=K(t),0>=e.length)t.aiDisplay=i.slice();else for((s||r||a.length>e.length||0!==e.indexOf(a)||t.bSorted)&&(t.aiDisplay=i.slice()),e=t.aiDisplay,r=e.length-1;r>=0;r--)n.test(t.aoData[e[r]]._sFilterRow)||e.splice(r,1)}function Q(t,e,r,a){return t=e?t:Y(t),r&&(t="^(?=.*?"+n.map(t.match(/"[^"]+"|[^ ]+/g)||[""],function(t){if('"'===t.charAt(0))var e=t.match(/^"(.*)"$/),t=e?e[1]:t;return t.replace('"',"")}).join(")(?=.*?")+").*$"),RegExp(t,a?"i":"")}function Y(t){return t.replace(er,"\\$1")}function K(t){var e,r,n,a,i,s,o,l,u=t.aoColumns,c=Ve.ext.type.search;for(e=!1,r=0,a=t.aoData.length;a>r;r++)if(l=t.aoData[r],!l._aFilterData){for(s=[],n=0,i=u.length;i>n;n++)e=u[n],e.bSearchable?(o=C(t,r,n,"filter"),c[e.sType]&&(o=c[e.sType](o)),null===o&&(o=""),"string"!=typeof o&&o.toString&&(o=o.toString())):o="",o.indexOf&&-1!==o.indexOf("&")&&(mr.innerHTML=o,o=_r?mr.textContent:mr.innerText),o.replace&&(o=o.replace(/[\r\n]/g,"")),s.push(o);l._aFilterData=s,l._sFilterRow=s.join(" "),e=!0}return e}function te(t){return{search:t.sSearch,smart:t.bSmart,regex:t.bRegex,caseInsensitive:t.bCaseInsensitive}}function ee(t){return{sSearch:t.search,bSmart:t.smart,bRegex:t.regex,bCaseInsensitive:t.caseInsensitive}}function re(t){var e=t.sTableId,r=t.aanFeatures.i,a=n("<div/>",{"class":t.oClasses.sInfo,id:r?null:e+"_info"});return r||(t.aoDrawCallback.push({fn:ne,sName:"information"}),a.attr("role","status").attr("aria-live","polite"),n(t.nTable).attr("aria-describedby",e+"_info")),a[0]}function ne(t){var e=t.aanFeatures.i;if(0!==e.length){var r=t.oLanguage,a=t._iDisplayStart+1,i=t.fnDisplayEnd(),s=t.fnRecordsTotal(),o=t.fnRecordsDisplay(),l=o?r.sInfo:r.sInfoEmpty;o!==s&&(l+=" "+r.sInfoFiltered),l+=r.sInfoPostFix,l=ae(t,l),r=r.fnInfoCallback,null!==r&&(l=r.call(t.oInstance,t,a,i,s,o,l)),n(e).html(l)}}function ae(t,e){var r=t.fnFormatNumber,n=t._iDisplayStart+1,a=t._iDisplayLength,i=t.fnRecordsDisplay(),s=-1===a;return e.replace(/_START_/g,r.call(t,n)).replace(/_END_/g,r.call(t,t.fnDisplayEnd())).replace(/_MAX_/g,r.call(t,t.fnRecordsTotal())).replace(/_TOTAL_/g,r.call(t,i)).replace(/_PAGE_/g,r.call(t,s?1:Math.ceil(n/a))).replace(/_PAGES_/g,r.call(t,s?1:Math.ceil(i/a)))}function ie(t){var e,r,n,a=t.iInitDisplayStart,i=t.aoColumns;r=t.oFeatures;var s=t.bDeferLoading;if(t.bInitialised){for(O(t),R(t),j(t,t.aoHeader),j(t,t.aoFooter),de(t,!0),r.bAutoWidth&&me(t),e=0,r=i.length;r>e;e++)n=i[e],n.sWidth&&(n.nTh.style.width=ye(n.sWidth));Oe(t,null,"preInit",[t]),E(t),i=We(t),("ssp"!=i||s)&&("ajax"==i?W(t,[],function(r){var n=V(t,r);for(e=0;e<n.length;e++)S(t,n[e]);t.iInitDisplayStart=a,E(t),de(t,!1),se(t,r)},t):(de(t,!1),se(t)))}else setTimeout(function(){ie(t)},200)}function se(t,e){t._bInitComplete=!0,(e||t.oInit.aaData)&&f(t),Oe(t,"aoInitComplete","init",[t,e])}function oe(t,e){var r=parseInt(e,10);t._iDisplayLength=r,Ne(t),Oe(t,null,"length",[t,r])}function le(t){for(var e=t.oClasses,r=t.sTableId,a=t.aLengthMenu,i=n.isArray(a[0]),s=i?a[0]:a,a=i?a[1]:a,i=n("<select/>",{name:r+"_length","aria-controls":r,"class":e.sLengthSelect}),o=0,l=s.length;l>o;o++)i[0][o]=new Option(a[o],s[o]);var u=n("<div><label/></div>").addClass(e.sLength);return t.aanFeatures.l||(u[0].id=r+"_length"),u.children().append(t.oLanguage.sLengthMenu.replace("_MENU_",i[0].outerHTML)),n("select",u).val(t._iDisplayLength).bind("change.DT",function(){oe(t,n(this).val()),H(t)}),n(t.nTable).bind("length.dt.DT",function(e,r,a){t===r&&n("select",u).val(a)}),u[0]}function ue(t){var e=t.sPaginationType,r=Ve.ext.pager[e],a="function"==typeof r,i=function(t){H(t)},e=n("<div/>").addClass(t.oClasses.sPaging+e)[0],s=t.aanFeatures;return a||r.fnInit(t,e,i),s.p||(e.id=t.sTableId+"_paginate",t.aoDrawCallback.push({fn:function(t){if(a){var e,n=t._iDisplayStart,o=t._iDisplayLength,l=t.fnRecordsDisplay(),u=-1===o,n=u?0:Math.ceil(n/o),o=u?1:Math.ceil(l/o),l=r(n,o),u=0;for(e=s.p.length;e>u;u++)Be(t,"pageButton")(t,s.p[u],u,l,n,o)}else r.fnUpdate(t,i)},sName:"pagination"})),e}function ce(t,e,r){var n=t._iDisplayStart,a=t._iDisplayLength,i=t.fnRecordsDisplay();return 0===i||-1===a?n=0:"number"==typeof e?(n=e*a,n>i&&(n=0)):"first"==e?n=0:"previous"==e?(n=a>=0?n-a:0,0>n&&(n=0)):"next"==e?i>n+a&&(n+=a):"last"==e?n=Math.floor((i-1)/a)*a:Fe(t,0,"Unknown paging action: "+e,5),e=t._iDisplayStart!==n,t._iDisplayStart=n,e&&(Oe(t,null,"page",[t]),r&&H(t)),e}function he(t){return n("<div/>",{id:t.aanFeatures.r?null:t.sTableId+"_processing","class":t.oClasses.sProcessing}).html(t.oLanguage.sProcessing).insertBefore(t.nTable)[0]}function de(t,e){t.oFeatures.bProcessing&&n(t.aanFeatures.r).css("display",e?"block":"none"),Oe(t,null,"processing",[t,e])}function fe(t){var e=n(t.nTable);e.attr("role","grid");var r=t.oScroll;if(""===r.sX&&""===r.sY)return t.nTable;var a=r.sX,i=r.sY,s=t.oClasses,o=e.children("caption"),l=o.length?o[0]._captionSide:null,u=n(e[0].cloneNode(!1)),c=n(e[0].cloneNode(!1)),h=e.children("tfoot");r.sX&&"100%"===e.attr("width")&&e.removeAttr("width"),h.length||(h=null),u=n("<div/>",{"class":s.sScrollWrapper}).append(n("<div/>",{"class":s.sScrollHead}).css({overflow:"hidden",position:"relative",border:0,width:a?a?ye(a):null:"100%"}).append(n("<div/>",{"class":s.sScrollHeadInner}).css({"box-sizing":"content-box",width:r.sXInner||"100%"}).append(u.removeAttr("id").css("margin-left",0).append("top"===l?o:null).append(e.children("thead"))))).append(n("<div/>",{"class":s.sScrollBody}).css({position:"relative",overflow:"auto",width:a?ye(a):null}).append(e)),h&&u.append(n("<div/>",{"class":s.sScrollFoot}).css({overflow:"hidden",border:0,width:a?a?ye(a):null:"100%"}).append(n("<div/>",{"class":s.sScrollFootInner}).append(c.removeAttr("id").css("margin-left",0).append("bottom"===l?o:null).append(e.children("tfoot")))));var e=u.children(),d=e[0],s=e[1],f=h?e[2]:null;return a&&n(s).on("scroll.DT",function(){var t=this.scrollLeft;d.scrollLeft=t,h&&(f.scrollLeft=t)}),n(s).css(i&&r.bCollapse?"max-height":"height",i),t.nScrollHead=d,t.nScrollBody=s,t.nScrollFoot=f,t.aoDrawCallback.push({fn:pe,sName:"scrolling"}),u[0]}function pe(t){var e,r,a,i,s,o=t.oScroll,l=o.sX,u=o.sXInner,c=o.sY,o=o.iBarWidth,h=n(t.nScrollHead),d=h[0].style,f=h.children("div"),g=f[0].style,m=f.children("table"),f=t.nScrollBody,_=n(f),b=f.style,v=n(t.nScrollFoot).children("div"),S=v.children("table"),y=n(t.nTHead),C=n(t.nTable),D=C[0],w=D.style,x=t.nTFoot?n(t.nTFoot):null,T=t.oBrowser,I=T.bScrollOversize,k=[],M=[],A=[],L=function(t){t=t.style,t.paddingTop="0",t.paddingBottom="0",t.borderTopWidth="0",t.borderBottomWidth="0",t.height=0};C.children("thead, tfoot").remove(),i=y.clone().prependTo(C),y=y.find("tr"),r=i.find("tr"),i.find("th, td").removeAttr("tabindex"),x&&(a=x.clone().prependTo(C),e=x.find("tr"),a=a.find("tr")),l||(b.width="100%",h[0].style.width="100%"),n.each(B(t,i),function(e,r){s=p(t,e),r.style.width=t.aoColumns[s].sWidth}),x&&ge(function(t){t.style.width=""},a),h=C.outerWidth(),""===l?(w.width="100%",I&&(C.find("tbody").height()>f.offsetHeight||"scroll"==_.css("overflow-y"))&&(w.width=ye(C.outerWidth()-o)),h=C.outerWidth()):""!==u&&(w.width=ye(u),h=C.outerWidth()),ge(L,r),ge(function(t){A.push(t.innerHTML),k.push(ye(n(t).css("width")))},r),ge(function(t,e){t.style.width=k[e]},y),n(r).height(0),x&&(ge(L,a),ge(function(t){M.push(ye(n(t).css("width")))},a),ge(function(t,e){t.style.width=M[e]},e),n(a).height(0)),ge(function(t,e){t.innerHTML='<div class="dataTables_sizing" style="height:0;overflow:hidden;">'+A[e]+"</div>",t.style.width=k[e]},r),x&&ge(function(t,e){t.innerHTML="",t.style.width=M[e]},a),C.outerWidth()<h?(e=f.scrollHeight>f.offsetHeight||"scroll"==_.css("overflow-y")?h+o:h,I&&(f.scrollHeight>f.offsetHeight||"scroll"==_.css("overflow-y"))&&(w.width=ye(e-o)),(""===l||""!==u)&&Fe(t,1,"Possible column misalignment",6)):e="100%",b.width=ye(e),d.width=ye(e),x&&(t.nScrollFoot.style.width=ye(e)),!c&&I&&(b.height=ye(D.offsetHeight+o)),l=C.outerWidth(),m[0].style.width=ye(l),g.width=ye(l),u=C.height()>f.clientHeight||"scroll"==_.css("overflow-y"),c="padding"+(T.bScrollbarLeft?"Left":"Right"),g[c]=u?o+"px":"0px",x&&(S[0].style.width=ye(l),v[0].style.width=ye(l),v[0].style[c]=u?o+"px":"0px"),_.scroll(),!t.bSorted&&!t.bFiltered||t._drawHold||(f.scrollTop=0)}function ge(t,e,r){for(var n,a,i=0,s=0,o=e.length;o>s;){for(n=e[s].firstChild,a=r?r[s].firstChild:null;n;)1===n.nodeType&&(r?t(n,a,i):t(n,i),i++),n=n.nextSibling,a=r?a.nextSibling:null;s++}}function me(e){var r,a,i,s=e.nTable,o=e.aoColumns,l=e.oScroll,u=l.sY,c=l.sX,h=l.sXInner,d=o.length,p=_(e,"bVisible"),g=n("th",e.nTHead),b=s.getAttribute("width"),v=s.parentNode,S=!1;for(i=e.oBrowser,l=i.bScrollOversize,(r=s.style.width)&&-1!==r.indexOf("%")&&(b=r),r=0;r<p.length;r++)a=o[p[r]],null!==a.sWidth&&(a.sWidth=be(a.sWidthOrig,v),S=!0);if(l||!S&&!c&&!u&&d==m(e)&&d==g.length)for(r=0;d>r;r++)o[r].sWidth=ye(g.eq(r).width());else{d=n(s).clone().css("visibility","hidden").removeAttr("id"),d.find("tbody tr").remove();var y=n("<tr/>").appendTo(d.find("tbody"));for(d.find("thead, tfoot").remove(),d.append(n(e.nTHead).clone()).append(n(e.nTFoot).clone()),d.find("tfoot th, tfoot td").css("width",""),g=B(e,d.find("thead")[0]),r=0;r<p.length;r++)a=o[p[r]],g[r].style.width=null!==a.sWidthOrig&&""!==a.sWidthOrig?ye(a.sWidthOrig):"";if(e.aoData.length)for(r=0;r<p.length;r++)S=p[r],a=o[S],n(ve(e,S)).clone(!1).append(a.sContentPadding).appendTo(y);if(S=n("<div/>").css(c||u?{position:"absolute",top:0,left:0,height:1,right:0,overflow:"hidden"}:{}).append(d).appendTo(v),c&&h?d.width(h):c?(d.css("width","auto"),d.width()<v.clientWidth&&d.width(v.clientWidth)):u?d.width(v.clientWidth):b&&d.width(b),c){for(r=h=0;r<p.length;r++)a=o[p[r]],u=i.bBounding?g[r].getBoundingClientRect().width:n(g[r]).outerWidth(),h+=null===a.sWidthOrig?u:parseInt(a.sWidth,10)+u-n(g[r]).width();d.width(ye(h)),s.style.width=ye(h)}for(r=0;r<p.length;r++)a=o[p[r]],(i=n(g[r]).width())&&(a.sWidth=ye(i));s.style.width=ye(d.css("width")),S.remove()}b&&(s.style.width=ye(b)),!b&&!c||e._reszEvt||(s=function(){n(t).bind("resize.DT-"+e.sInstance,_e(function(){f(e)}))},l?setTimeout(s,1e3):s(),e._reszEvt=!0)}function _e(t,e){var n,a,i=e!==r?e:200;return function(){var e=this,s=+new Date,o=arguments;n&&n+i>s?(clearTimeout(a),a=setTimeout(function(){n=r,t.apply(e,o)},i)):(n=s,t.apply(e,o))}}function be(t,r){if(!t)return 0;var a=n("<div/>").css("width",ye(t)).appendTo(r||e.body),i=a[0].offsetWidth;return a.remove(),i}function ve(t,e){var r=Se(t,e);if(0>r)return null;var a=t.aoData[r];return a.nTr?a.anCells[e]:n("<td/>").html(C(t,r,e,"display"))[0]}function Se(t,e){for(var r,n=-1,a=-1,i=0,s=t.aoData.length;s>i;i++)r=C(t,i,e,"display")+"",r=r.replace(br,""),r.length>n&&(n=r.length,a=i);return a}function ye(t){return null===t?"0px":"number"==typeof t?0>t?"0px":t+"px":t.match(/\d$/)?t+"px":t}function Ce(){var t=Ve.__scrollbarWidth;if(t===r){var e=n("<p/>").css({position:"absolute",top:0,left:0,width:"100%",height:150,padding:0,overflow:"scroll",visibility:"hidden"}).appendTo("body"),t=e[0].offsetWidth-e[0].clientWidth;Ve.__scrollbarWidth=t,e.remove()}return t}function De(t){var e,a,i,s,o,l,u=[],c=t.aoColumns;e=t.aaSortingFixed,a=n.isPlainObject(e);var h=[];for(i=function(t){t.length&&!n.isArray(t[0])?h.push(t):h.push.apply(h,t)},n.isArray(e)&&i(e),a&&e.pre&&i(e.pre),i(t.aaSorting),a&&e.post&&i(e.post),t=0;t<h.length;t++)for(l=h[t][0],i=c[l].aDataSort,e=0,a=i.length;a>e;e++)s=i[e],o=c[s].sType||"string",h[t]._idx===r&&(h[t]._idx=n.inArray(h[t][1],c[s].asSorting)),u.push({src:l,col:s,dir:h[t][1],index:h[t]._idx,type:o,formatter:Ve.ext.type.order[o+"-pre"]});return u}function we(t){var e,r,n,a,i=[],s=Ve.ext.type.order,o=t.aoData,l=0,u=t.aiDisplayMaster;for(b(t),a=De(t),e=0,r=a.length;r>e;e++)n=a[e],n.formatter&&l++,Me(t,n.col);if("ssp"!=We(t)&&0!==a.length){for(e=0,r=u.length;r>e;e++)i[u[e]]=e;u.sort(l===a.length?function(t,e){var r,n,s,l,u=a.length,c=o[t]._aSortData,h=o[e]._aSortData;for(s=0;u>s;s++)if(l=a[s],r=c[l.col],n=h[l.col],r=n>r?-1:r>n?1:0,0!==r)return"asc"===l.dir?r:-r;return r=i[t],n=i[e],n>r?-1:r>n?1:0}:function(t,e){var r,n,l,u,c=a.length,h=o[t]._aSortData,d=o[e]._aSortData;for(l=0;c>l;l++)if(u=a[l],r=h[u.col],n=d[u.col],u=s[u.type+"-"+u.dir]||s["string-"+u.dir],r=u(r,n),0!==r)return r;return r=i[t],n=i[e],n>r?-1:r>n?1:0})}t.bSorted=!0}function xe(t){for(var e,r,n=t.aoColumns,a=De(t),t=t.oLanguage.oAria,i=0,s=n.length;s>i;i++){r=n[i];var o=r.asSorting;e=r.sTitle.replace(/<.*?>/g,"");var l=r.nTh;l.removeAttribute("aria-sort"),r.bSortable&&(0<a.length&&a[0].col==i?(l.setAttribute("aria-sort","asc"==a[0].dir?"ascending":"descending"),r=o[a[0].index+1]||o[0]):r=o[0],e+="asc"===r?t.sSortAscending:t.sSortDescending),l.setAttribute("aria-label",e)}}function Te(t,e,a,i){var s=t.aaSorting,o=t.aoColumns[e].asSorting,l=function(t,e){var a=t._idx;return a===r&&(a=n.inArray(t[1],o)),a+1<o.length?a+1:e?null:0};"number"==typeof s[0]&&(s=t.aaSorting=[s]),a&&t.oFeatures.bSortMulti?(a=n.inArray(e,lr(s,"0")),-1!==a?(e=l(s[a],!0),null===e&&1===s.length&&(e=0),null===e?s.splice(a,1):(s[a][1]=o[e],s[a]._idx=e)):(s.push([e,o[0],0]),s[s.length-1]._idx=0)):s.length&&s[0][0]==e?(e=l(s[0]),s.length=1,s[0][1]=o[e],s[0]._idx=e):(s.length=0,s.push([e,o[0]]),s[0]._idx=0),E(t),"function"==typeof i&&i(t)}function Ie(t,e,r,n){var a=t.aoColumns[r];He(e,{},function(e){!1!==a.bSortable&&(t.oFeatures.bProcessing?(de(t,!0),setTimeout(function(){Te(t,r,e.shiftKey,n),"ssp"!==We(t)&&de(t,!1)},0)):Te(t,r,e.shiftKey,n))})}function ke(t){var e,r,a=t.aLastSort,i=t.oClasses.sSortColumn,s=De(t),o=t.oFeatures;if(o.bSort&&o.bSortClasses){for(o=0,e=a.length;e>o;o++)r=a[o].src,n(lr(t.aoData,"anCells",r)).removeClass(i+(2>o?o+1:3));for(o=0,e=s.length;e>o;o++)r=s[o].src,n(lr(t.aoData,"anCells",r)).addClass(i+(2>o?o+1:3))}t.aLastSort=s}function Me(t,e){var r,n=t.aoColumns[e],a=Ve.ext.order[n.sSortDataType];a&&(r=a.call(t.oInstance,t,e,g(t,e)));for(var i,s=Ve.ext.type.order[n.sType+"-pre"],o=0,l=t.aoData.length;l>o;o++)n=t.aoData[o],n._aSortData||(n._aSortData=[]),(!n._aSortData[e]||a)&&(i=a?r[o]:C(t,o,e,"sort"),n._aSortData[e]=s?s(i):i)}function Ae(t){if(t.oFeatures.bStateSave&&!t.bDestroying){var e={time:+new Date,start:t._iDisplayStart,length:t._iDisplayLength,order:n.extend(!0,[],t.aaSorting),search:te(t.oPreviousSearch),columns:n.map(t.aoColumns,function(e,r){return{visible:e.bVisible,search:te(t.aoPreSearchCols[r])}})};Oe(t,"aoStateSaveParams","stateSaveParams",[t,e]),t.oSavedState=e,t.fnStateSaveCallback.call(t.oInstance,t,e)}}function Le(t){var e,a,i=t.aoColumns;if(t.oFeatures.bStateSave){var s=t.fnStateLoadCallback.call(t.oInstance,t);if(s&&s.time&&(e=Oe(t,"aoStateLoadParams","stateLoadParams",[t,s]),-1===n.inArray(!1,e)&&(e=t.iStateDuration,!(e>0&&s.time<+new Date-1e3*e)&&i.length===s.columns.length))){for(t.oLoadedState=n.extend(!0,{},s),s.start!==r&&(t._iDisplayStart=s.start,t.iInitDisplayStart=s.start),s.length!==r&&(t._iDisplayLength=s.length),s.order!==r&&(t.aaSorting=[],n.each(s.order,function(e,r){t.aaSorting.push(r[0]>=i.length?[0,r[1]]:r)})),s.search!==r&&n.extend(t.oPreviousSearch,ee(s.search)),e=0,a=s.columns.length;a>e;e++){var o=s.columns[e];o.visible!==r&&(i[e].bVisible=o.visible),o.search!==r&&n.extend(t.aoPreSearchCols[e],ee(o.search))}Oe(t,"aoStateLoaded","stateLoaded",[t,s])}}}function Pe(t){var e=Ve.settings,t=n.inArray(t,lr(e,"nTable"));return-1!==t?e[t]:null}function Fe(e,r,n,a){if(n="DataTables warning: "+(e?"table id="+e.sTableId+" - ":"")+n,a&&(n+=". For more information about this error, please see http://datatables.net/tn/"+a),r)t.console&&console.log&&console.log(n);else if(r=Ve.ext,r=r.sErrMode||r.errMode,e&&Oe(e,null,"error",[e,a,n]),"alert"==r)alert(n);else{if("throw"==r)throw Error(n);"function"==typeof r&&r(e,a,n)}}function Re(t,e,a,i){n.isArray(a)?n.each(a,function(r,a){n.isArray(a)?Re(t,e,a[0],a[1]):Re(t,e,a)}):(i===r&&(i=a),e[a]!==r&&(t[i]=e[a]))}function je(t,e,r){var a,i;for(i in e)e.hasOwnProperty(i)&&(a=e[i],n.isPlainObject(a)?(n.isPlainObject(t[i])||(t[i]={}),n.extend(!0,t[i],a)):t[i]=r&&"data"!==i&&"aaData"!==i&&n.isArray(a)?a.slice():a);return t}function He(t,e,r){n(t).bind("click.DT",e,function(e){t.blur(),r(e)}).bind("keypress.DT",e,function(t){13===t.which&&(t.preventDefault(),r(t))}).bind("selectstart.DT",function(){return!1})}function Ee(t,e,r,n){r&&t[e].push({fn:r,sName:n})}function Oe(t,e,r,a){var i=[];return e&&(i=n.map(t[e].slice().reverse(),function(e){return e.fn.apply(t.oInstance,a)})),null!==r&&(e=n.Event(r+".dt"),n(t.nTable).trigger(e,a),i.push(e.result)),i}function Ne(t){var e=t._iDisplayStart,r=t.fnDisplayEnd(),n=t._iDisplayLength;e>=r&&(e=r-n),e-=e%n,(-1===n||0>e)&&(e=0),t._iDisplayStart=e}function Be(t,e){var r=t.renderer,a=Ve.ext.renderer[e];return n.isPlainObject(r)&&r[e]?a[r[e]]||a._:"string"==typeof r?a[r]||a._:a._}function We(t){return t.oFeatures.bServerSide?"ssp":t.ajax||t.sAjaxSource?"ajax":"dom"}function ze(t,e){var r=[],r=jr.numbers_length,n=Math.floor(r/2);return r>=e?r=cr(0,e):n>=t?(r=cr(0,r-2),r.push("ellipsis"),r.push(e-1)):(t>=e-1-n?r=cr(e-(r-2),e):(r=cr(t-n+2,t+n-1),r.push("ellipsis"),r.push(e-1)),r.splice(0,0,"ellipsis"),r.splice(0,0,0)),r.DT_el="span",r}function Ue(t){n.each({num:function(e){return Hr(e,t)},"num-fmt":function(e){return Hr(e,t,rr)},"html-num":function(e){return Hr(e,t,Ye)},"html-num-fmt":function(e){return Hr(e,t,Ye,rr)}},function(e,r){Xe.type.order[e+t+"-pre"]=r,e.match(/^html\-/)&&(Xe.type.search[e+t]=Xe.type.search.html)})}function Je(t){return function(){var e=[Pe(this[Ve.ext.iApiIndex])].concat(Array.prototype.slice.call(arguments));return Ve.ext.internal[t].apply(this,e)}}var Ve,Xe,Ze,Ge,qe,$e={},Qe=/[\r\n]/g,Ye=/<.*?>/g,Ke=/^[\w\+\-]/,tr=/[\w\+\-]$/,er=RegExp("(\\/|\\.|\\*|\\+|\\?|\\||\\(|\\)|\\[|\\]|\\{|\\}|\\\\|\\$|\\^|\\-)","g"),rr=/[',$£€¥%\u2009\u202F\u20BD\u20a9\u20BArfk]/gi,nr=function(t){return t&&!0!==t&&"-"!==t?!1:!0},ar=function(t){var e=parseInt(t,10);return!isNaN(e)&&isFinite(t)?e:null},ir=function(t,e){return $e[e]||($e[e]=RegExp(Y(e),"g")),"string"==typeof t&&"."!==e?t.replace(/\./g,"").replace($e[e],"."):t},sr=function(t,e,r){var n="string"==typeof t;return nr(t)?!0:(e&&n&&(t=ir(t,e)),r&&n&&(t=t.replace(rr,"")),!isNaN(parseFloat(t))&&isFinite(t))},or=function(t,e,r){return nr(t)?!0:(nr(t)||"string"==typeof t)&&sr(t.replace(Ye,""),e,r)?!0:null},lr=function(t,e,n){var a=[],i=0,s=t.length;if(n!==r)for(;s>i;i++)t[i]&&t[i][e]&&a.push(t[i][e][n]);else for(;s>i;i++)t[i]&&a.push(t[i][e]);return a},ur=function(t,e,n,a){var i=[],s=0,o=e.length;if(a!==r)for(;o>s;s++)t[e[s]][n]&&i.push(t[e[s]][n][a]);else for(;o>s;s++)i.push(t[e[s]][n]);return i},cr=function(t,e){var n,a=[];e===r?(e=0,n=t):(n=e,e=t);for(var i=e;n>i;i++)a.push(i);return a},hr=function(t){for(var e=[],r=0,n=t.length;n>r;r++)t[r]&&e.push(t[r]);return e},dr=function(t){var e,r,n,a=[],i=t.length,s=0;r=0;t:for(;i>r;r++){for(e=t[r],n=0;s>n;n++)if(a[n]===e)continue t;a.push(e),s++}return a},fr=function(t,e,n){t[e]!==r&&(t[n]=t[e])},pr=/\[.*?\]$/,gr=/\(\)$/,mr=n("<div>")[0],_r=mr.textContent!==r,br=/<.*?>/g;Ve=function(t){this.$=function(t,e){return this.api(!0).$(t,e)},this._=function(t,e){return this.api(!0).rows(t,e).data()},this.api=function(t){return new Ze(t?Pe(this[Xe.iApiIndex]):this)},this.fnAddData=function(t,e){var a=this.api(!0),i=n.isArray(t)&&(n.isArray(t[0])||n.isPlainObject(t[0]))?a.rows.add(t):a.row.add(t);return(e===r||e)&&a.draw(),i.flatten().toArray()},this.fnAdjustColumnSizing=function(t){var e=this.api(!0).columns.adjust(),n=e.settings()[0],a=n.oScroll;t===r||t?e.draw(!1):(""!==a.sX||""!==a.sY)&&pe(n)},this.fnClearTable=function(t){var e=this.api(!0).clear();(t===r||t)&&e.draw()},this.fnClose=function(t){this.api(!0).row(t).child.hide()},this.fnDeleteRow=function(t,e,n){var a=this.api(!0),t=a.rows(t),i=t.settings()[0],s=i.aoData[t[0][0]];return t.remove(),e&&e.call(this,i,s),(n===r||n)&&a.draw(),s},this.fnDestroy=function(t){this.api(!0).destroy(t)},this.fnDraw=function(t){this.api(!0).draw(t)},this.fnFilter=function(t,e,n,a,i,s){i=this.api(!0),null===e||e===r?i.search(t,n,a,s):i.column(e).search(t,n,a,s),i.draw()},this.fnGetData=function(t,e){var n=this.api(!0);if(t!==r){var a=t.nodeName?t.nodeName.toLowerCase():"";return e!==r||"td"==a||"th"==a?n.cell(t,e).data():n.row(t).data()||null}return n.data().toArray()},this.fnGetNodes=function(t){var e=this.api(!0);return t!==r?e.row(t).node():e.rows().nodes().flatten().toArray()},this.fnGetPosition=function(t){var e=this.api(!0),r=t.nodeName.toUpperCase();return"TR"==r?e.row(t).index():"TD"==r||"TH"==r?(t=e.cell(t).index(),[t.row,t.columnVisible,t.column]):null},this.fnIsOpen=function(t){return this.api(!0).row(t).child.isShown()},this.fnOpen=function(t,e,r){return this.api(!0).row(t).child(e,r).show().child()[0]},this.fnPageChange=function(t,e){var n=this.api(!0).page(t);(e===r||e)&&n.draw(!1)},this.fnSetColumnVis=function(t,e,n){t=this.api(!0).column(t).visible(e),(n===r||n)&&t.columns.adjust().draw()},this.fnSettings=function(){return Pe(this[Xe.iApiIndex])},this.fnSort=function(t){this.api(!0).order(t).draw()},this.fnSortListener=function(t,e,r){this.api(!0).order.listener(t,e,r)},this.fnUpdate=function(t,e,n,a,i){var s=this.api(!0);return n===r||null===n?s.row(e).data(t):s.cell(e,n).data(t),(i===r||i)&&s.columns.adjust(),(a===r||a)&&s.draw(),0},this.fnVersionCheck=Xe.fnVersionCheck;var e=this,a=t===r,c=this.length;a&&(t={}),this.oApi=this.internal=Xe.internal;for(var f in Ve.ext.internal)f&&(this[f]=Je(f));return this.each(function(){var f,p={},p=c>1?je(p,t,!0):t,g=0,m=this.getAttribute("id"),_=!1,b=Ve.defaults,C=n(this);if("table"!=this.nodeName.toLowerCase())Fe(null,0,"Non-table node initialisation ("+this.nodeName+")",2);else{o(b),l(b.column),i(b,b,!0),i(b.column,b.column,!0),i(b,n.extend(p,C.data()));var D=Ve.settings,g=0;for(f=D.length;f>g;g++){var w=D[g];if(w.nTable==this||w.nTHead.parentNode==this||w.nTFoot&&w.nTFoot.parentNode==this){if(g=p.bRetrieve!==r?p.bRetrieve:b.bRetrieve,a||g)return w.oInstance;if(p.bDestroy!==r?p.bDestroy:b.bDestroy){w.oInstance.fnDestroy();break}return void Fe(w,0,"Cannot reinitialise DataTable",3)}if(w.sTableId==this.id){D.splice(g,1);break}}(null===m||""===m)&&(this.id=m="DataTables_Table_"+Ve.ext._unique++);var T=n.extend(!0,{},Ve.models.oSettings,{sDestroyWidth:C[0].style.width,sInstance:m,sTableId:m});T.nTable=this,T.oApi=e.internal,T.oInit=p,D.push(T),T.oInstance=1===e.length?e:C.dataTable(),o(p),p.oLanguage&&s(p.oLanguage),p.aLengthMenu&&!p.iDisplayLength&&(p.iDisplayLength=n.isArray(p.aLengthMenu[0])?p.aLengthMenu[0][0]:p.aLengthMenu[0]),p=je(n.extend(!0,{},b),p),Re(T.oFeatures,p,"bPaginate bLengthChange bFilter bSort bSortMulti bInfo bProcessing bAutoWidth bSortClasses bServerSide bDeferRender".split(" ")),Re(T,p,["asStripeClasses","ajax","fnServerData","fnFormatNumber","sServerMethod","aaSorting","aaSortingFixed","aLengthMenu","sPaginationType","sAjaxSource","sAjaxDataProp","iStateDuration","sDom","bSortCellsTop","iTabIndex","fnStateLoadCallback","fnStateSaveCallback","renderer","searchDelay","rowId",["iCookieDuration","iStateDuration"],["oSearch","oPreviousSearch"],["aoSearchCols","aoPreSearchCols"],["iDisplayLength","_iDisplayLength"],["bJQueryUI","bJUI"]]),Re(T.oScroll,p,[["sScrollX","sX"],["sScrollXInner","sXInner"],["sScrollY","sY"],["bScrollCollapse","bCollapse"]]),Re(T.oLanguage,p,"fnInfoCallback"),Ee(T,"aoDrawCallback",p.fnDrawCallback,"user"),Ee(T,"aoServerParams",p.fnServerParams,"user"),Ee(T,"aoStateSaveParams",p.fnStateSaveParams,"user"),Ee(T,"aoStateLoadParams",p.fnStateLoadParams,"user"),Ee(T,"aoStateLoaded",p.fnStateLoaded,"user"),Ee(T,"aoRowCallback",p.fnRowCallback,"user"),Ee(T,"aoRowCreatedCallback",p.fnCreatedRow,"user"),Ee(T,"aoHeaderCallback",p.fnHeaderCallback,"user"),Ee(T,"aoFooterCallback",p.fnFooterCallback,"user"),Ee(T,"aoInitComplete",p.fnInitComplete,"user"),Ee(T,"aoPreDrawCallback",p.fnPreDrawCallback,"user"),T.rowIdFn=x(p.rowId),m=T.oClasses,p.bJQueryUI?(n.extend(m,Ve.ext.oJUIClasses,p.oClasses),p.sDom===b.sDom&&"lfrtip"===b.sDom&&(T.sDom='<"H"lfr>t<"F"ip>'),T.renderer?n.isPlainObject(T.renderer)&&!T.renderer.header&&(T.renderer.header="jqueryui"):T.renderer="jqueryui"):n.extend(m,Ve.ext.classes,p.oClasses),C.addClass(m.sTable),(""!==T.oScroll.sX||""!==T.oScroll.sY)&&(T.oScroll.iBarWidth=Ce()),T.iInitDisplayStart===r&&(T.iInitDisplayStart=p.iDisplayStart,T._iDisplayStart=p.iDisplayStart),null!==p.iDeferLoading&&(T.bDeferLoading=!0,g=n.isArray(p.iDeferLoading),T._iRecordsDisplay=g?p.iDeferLoading[0]:p.iDeferLoading,T._iRecordsTotal=g?p.iDeferLoading[1]:p.iDeferLoading);
|
3 |
+
var I=T.oLanguage;n.extend(!0,I,p.oLanguage),""!==I.sUrl&&(n.ajax({dataType:"json",url:I.sUrl,success:function(t){s(t),i(b.oLanguage,t),n.extend(!0,I,t),ie(T)},error:function(){ie(T)}}),_=!0),null===p.asStripeClasses&&(T.asStripeClasses=[m.sStripeOdd,m.sStripeEven]);var g=T.asStripeClasses,k=C.children("tbody").find("tr").eq(0);if(-1!==n.inArray(!0,n.map(g,function(t){return k.hasClass(t)}))&&(n("tbody tr",this).removeClass(g.join(" ")),T.asDestroyStripes=g.slice()),D=[],g=this.getElementsByTagName("thead"),0!==g.length&&(N(T.aoHeader,g[0]),D=B(T)),null===p.aoColumns)for(w=[],g=0,f=D.length;f>g;g++)w.push(null);else w=p.aoColumns;for(g=0,f=w.length;f>g;g++)h(T,D?D[g]:null);if(v(T,p.aoColumnDefs,w,function(t,e){d(T,t,e)}),k.length){var M=function(t,e){return null!==t.getAttribute("data-"+e)?e:null};n.each(L(T,k[0]).cells,function(t,e){var n=T.aoColumns[t];if(n.mData===t){var a=M(e,"sort")||M(e,"order"),i=M(e,"filter")||M(e,"search");(null!==a||null!==i)&&(n.mData={_:t+".display",sort:null!==a?t+".@data-"+a:r,type:null!==a?t+".@data-"+a:r,filter:null!==i?t+".@data-"+i:r},d(T,t))}})}var A=T.oFeatures;if(p.bStateSave&&(A.bStateSave=!0,Le(T,p),Ee(T,"aoDrawCallback",Ae,"state_save")),p.aaSorting===r)for(D=T.aaSorting,g=0,f=D.length;f>g;g++)D[g][1]=T.aoColumns[g].asSorting[0];if(ke(T),A.bSort&&Ee(T,"aoDrawCallback",function(){if(T.bSorted){var t=De(T),e={};n.each(t,function(t,r){e[r.src]=r.dir}),Oe(T,null,"order",[T,t,e]),xe(T)}}),Ee(T,"aoDrawCallback",function(){(T.bSorted||"ssp"===We(T)||A.bDeferRender)&&ke(T)},"sc"),u(T),g=C.children("caption").each(function(){this._captionSide=C.css("caption-side")}),f=C.children("thead"),0===f.length&&(f=n("<thead/>").appendTo(this)),T.nTHead=f[0],f=C.children("tbody"),0===f.length&&(f=n("<tbody/>").appendTo(this)),T.nTBody=f[0],f=C.children("tfoot"),0===f.length&&0<g.length&&(""!==T.oScroll.sX||""!==T.oScroll.sY)&&(f=n("<tfoot/>").appendTo(this)),0===f.length||0===f.children().length?C.addClass(m.sNoFooter):0<f.length&&(T.nTFoot=f[0],N(T.aoFooter,T.nTFoot)),p.aaData)for(g=0;g<p.aaData.length;g++)S(T,p.aaData[g]);else(T.bDeferLoading||"dom"==We(T))&&y(T,n(T.nTBody).children("tr"));T.aiDisplay=T.aiDisplayMaster.slice(),T.bInitialised=!0,!1===_&&ie(T)}}),e=null,this};var vr=[],Sr=Array.prototype,yr=function(t){var e,r,a=Ve.settings,i=n.map(a,function(t){return t.nTable});return t?t.nTable&&t.oApi?[t]:t.nodeName&&"table"===t.nodeName.toLowerCase()?(e=n.inArray(t,i),-1!==e?[a[e]]:null):t&&"function"==typeof t.settings?t.settings().toArray():("string"==typeof t?r=n(t):t instanceof n&&(r=t),r?r.map(function(){return e=n.inArray(this,i),-1!==e?a[e]:null}).toArray():void 0):[]};Ze=function(t,e){if(!(this instanceof Ze))return new Ze(t,e);var r=[],a=function(t){(t=yr(t))&&r.push.apply(r,t)};if(n.isArray(t))for(var i=0,s=t.length;s>i;i++)a(t[i]);else a(t);this.context=dr(r),e&&this.push.apply(this,e.toArray?e.toArray():e),this.selector={rows:null,cols:null,opts:null},Ze.extend(this,this,vr)},Ve.Api=Ze,Ze.prototype={any:function(){return 0!==this.count()},concat:Sr.concat,context:[],count:function(){return this.flatten().length},each:function(t){for(var e=0,r=this.length;r>e;e++)t.call(this,this[e],e,this);return this},eq:function(t){var e=this.context;return e.length>t?new Ze(e[t],this[t]):null},filter:function(t){var e=[];if(Sr.filter)e=Sr.filter.call(this,t,this);else for(var r=0,n=this.length;n>r;r++)t.call(this,this[r],r,this)&&e.push(this[r]);return new Ze(this.context,e)},flatten:function(){var t=[];return new Ze(this.context,t.concat.apply(t,this.toArray()))},join:Sr.join,indexOf:Sr.indexOf||function(t,e){for(var r=e||0,n=this.length;n>r;r++)if(this[r]===t)return r;return-1},iterator:function(t,e,n,a){var i,s,o,l,u,c,h,d=[],f=this.context,p=this.selector;for("string"==typeof t&&(a=n,n=e,e=t,t=!1),s=0,o=f.length;o>s;s++){var g=new Ze(f[s]);if("table"===e)i=n.call(g,f[s],s),i!==r&&d.push(i);else if("columns"===e||"rows"===e)i=n.call(g,f[s],this[s],s),i!==r&&d.push(i);else if("column"===e||"column-rows"===e||"row"===e||"cell"===e)for(h=this[s],"column-rows"===e&&(c=Tr(f[s],p.opts)),l=0,u=h.length;u>l;l++)i=h[l],i="cell"===e?n.call(g,f[s],i.row,i.column,s,l):n.call(g,f[s],i,s,l,c),i!==r&&d.push(i)}return d.length||a?(t=new Ze(f,t?d.concat.apply([],d):d),e=t.selector,e.rows=p.rows,e.cols=p.cols,e.opts=p.opts,t):this},lastIndexOf:Sr.lastIndexOf||function(){return this.indexOf.apply(this.toArray.reverse(),arguments)},length:0,map:function(t){var e=[];if(Sr.map)e=Sr.map.call(this,t,this);else for(var r=0,n=this.length;n>r;r++)e.push(t.call(this,this[r],r));return new Ze(this.context,e)},pluck:function(t){return this.map(function(e){return e[t]})},pop:Sr.pop,push:Sr.push,reduce:Sr.reduce||function(t,e){return c(this,t,e,0,this.length,1)},reduceRight:Sr.reduceRight||function(t,e){return c(this,t,e,this.length-1,-1,-1)},reverse:Sr.reverse,selector:null,shift:Sr.shift,sort:Sr.sort,splice:Sr.splice,toArray:function(){return Sr.slice.call(this)},to$:function(){return n(this)},toJQuery:function(){return n(this)},unique:function(){return new Ze(this.context,dr(this))},unshift:Sr.unshift},Ze.extend=function(t,e,r){if(r.length&&e&&(e instanceof Ze||e.__dt_wrapper)){var a,i,s,o=function(t,e,r){return function(){var n=e.apply(t,arguments);return Ze.extend(n,n,r.methodExt),n}};for(a=0,i=r.length;i>a;a++)s=r[a],e[s.name]="function"==typeof s.val?o(t,s.val,s):n.isPlainObject(s.val)?{}:s.val,e[s.name].__dt_wrapper=!0,Ze.extend(t,e[s.name],s.propExt)}},Ze.register=Ge=function(t,e){if(n.isArray(t))for(var r=0,a=t.length;a>r;r++)Ze.register(t[r],e);else for(var i,s,o=t.split("."),l=vr,r=0,a=o.length;a>r;r++){i=(s=-1!==o[r].indexOf("()"))?o[r].replace("()",""):o[r];var u;t:{u=0;for(var c=l.length;c>u;u++)if(l[u].name===i){u=l[u];break t}u=null}u||(u={name:i,val:{},methodExt:[],propExt:[]},l.push(u)),r===a-1?u.val=e:l=s?u.methodExt:u.propExt}},Ze.registerPlural=qe=function(t,e,a){Ze.register(t,a),Ze.register(e,function(){var t=a.apply(this,arguments);return t===this?this:t instanceof Ze?t.length?n.isArray(t[0])?new Ze(t.context,t[0]):t[0]:r:t})},Ge("tables()",function(t){var e;if(t){e=Ze;var r=this.context;if("number"==typeof t)t=[r[t]];else var a=n.map(r,function(t){return t.nTable}),t=n(a).filter(t).map(function(){var t=n.inArray(this,a);return r[t]}).toArray();e=new e(t)}else e=this;return e}),Ge("table()",function(t){var t=this.tables(t),e=t.context;return e.length?new Ze(e[0]):t}),qe("tables().nodes()","table().node()",function(){return this.iterator("table",function(t){return t.nTable},1)}),qe("tables().body()","table().body()",function(){return this.iterator("table",function(t){return t.nTBody},1)}),qe("tables().header()","table().header()",function(){return this.iterator("table",function(t){return t.nTHead},1)}),qe("tables().footer()","table().footer()",function(){return this.iterator("table",function(t){return t.nTFoot},1)}),qe("tables().containers()","table().container()",function(){return this.iterator("table",function(t){return t.nTableWrapper},1)}),Ge("draw()",function(t){return this.iterator("table",function(e){"page"===t?H(e):("string"==typeof t&&(t="full-hold"===t?!1:!0),E(e,!1===t))})}),Ge("page()",function(t){return t===r?this.page.info().page:this.iterator("table",function(e){ce(e,t)})}),Ge("page.info()",function(){if(0===this.context.length)return r;var t=this.context[0],e=t._iDisplayStart,n=t._iDisplayLength,a=t.fnRecordsDisplay(),i=-1===n;return{page:i?0:Math.floor(e/n),pages:i?1:Math.ceil(a/n),start:e,end:t.fnDisplayEnd(),length:n,recordsTotal:t.fnRecordsTotal(),recordsDisplay:a,serverSide:"ssp"===We(t)}}),Ge("page.len()",function(t){return t===r?0!==this.context.length?this.context[0]._iDisplayLength:r:this.iterator("table",function(e){oe(e,t)})});var Cr=function(t,e,r){if(r){var n=new Ze(t);n.one("draw",function(){r(n.ajax.json())})}if("ssp"==We(t))E(t,e);else{de(t,!0);var a=t.jqXHR;a&&4!==a.readyState&&a.abort(),W(t,[],function(r){k(t);for(var r=V(t,r),n=0,a=r.length;a>n;n++)S(t,r[n]);E(t,e),de(t,!1)})}};Ge("ajax.json()",function(){var t=this.context;return 0<t.length?t[0].json:void 0}),Ge("ajax.params()",function(){var t=this.context;return 0<t.length?t[0].oAjaxData:void 0}),Ge("ajax.reload()",function(t,e){return this.iterator("table",function(r){Cr(r,!1===e,t)})}),Ge("ajax.url()",function(t){var e=this.context;return t===r?0===e.length?r:(e=e[0],e.ajax?n.isPlainObject(e.ajax)?e.ajax.url:e.ajax:e.sAjaxSource):this.iterator("table",function(e){n.isPlainObject(e.ajax)?e.ajax.url=t:e.ajax=t})}),Ge("ajax.url().load()",function(t,e){return this.iterator("table",function(r){Cr(r,!1===e,t)})});var Dr=function(t,e,a,i,s){var o,l,u,c,h,d,f=[];for(u=typeof e,e&&"string"!==u&&"function"!==u&&e.length!==r||(e=[e]),u=0,c=e.length;c>u;u++)for(l=e[u]&&e[u].split?e[u].split(","):[e[u]],h=0,d=l.length;d>h;h++)(o=a("string"==typeof l[h]?n.trim(l[h]):l[h]))&&o.length&&f.push.apply(f,o);if(t=Xe.selector[t],t.length)for(u=0,c=t.length;c>u;u++)f=t[u](i,s,f);return f},wr=function(t){return t||(t={}),t.filter&&t.search===r&&(t.search=t.filter),n.extend({search:"none",order:"current",page:"all"},t)},xr=function(t){for(var e=0,r=t.length;r>e;e++)if(0<t[e].length)return t[0]=t[e],t[0].length=1,t.length=1,t.context=[t.context[e]],t;return t.length=0,t},Tr=function(t,e){var r,a,i,s=[],o=t.aiDisplay;r=t.aiDisplayMaster;var l=e.search;if(a=e.order,i=e.page,"ssp"==We(t))return"removed"===l?[]:cr(0,r.length);if("current"==i)for(r=t._iDisplayStart,a=t.fnDisplayEnd();a>r;r++)s.push(o[r]);else if("current"==a||"applied"==a)s="none"==l?r.slice():"applied"==l?o.slice():n.map(r,function(t){return-1===n.inArray(t,o)?t:null});else if("index"==a||"original"==a)for(r=0,a=t.aoData.length;a>r;r++)"none"==l?s.push(r):(i=n.inArray(r,o),(-1===i&&"removed"==l||i>=0&&"applied"==l)&&s.push(r));return s};Ge("rows()",function(t,e){t===r?t="":n.isPlainObject(t)&&(e=t,t="");var e=wr(e),a=this.iterator("table",function(a){var i=e;return Dr("row",t,function(t){var e=ar(t);if(null!==e&&!i)return[e];var s=Tr(a,i);return null!==e&&-1!==n.inArray(e,s)?[e]:t?"function"==typeof t?n.map(s,function(e){var r=a.aoData[e];return t(e,r._aData,r.nTr)?e:null}):(e=hr(ur(a.aoData,s,"nTr")),t.nodeName&&-1!==n.inArray(t,e)?[t._DT_RowIndex]:"string"==typeof t&&"#"===t.charAt(0)&&(s=a.aIds[t.replace(/^#/,"")],s!==r)?[s.idx]:n(e).filter(t).map(function(){return this._DT_RowIndex}).toArray()):s},a,i)},1);return a.selector.rows=t,a.selector.opts=e,a}),Ge("rows().nodes()",function(){return this.iterator("row",function(t,e){return t.aoData[e].nTr||r},1)}),Ge("rows().data()",function(){return this.iterator(!0,"rows",function(t,e){return ur(t.aoData,e,"_aData")},1)}),qe("rows().cache()","row().cache()",function(t){return this.iterator("row",function(e,r){var n=e.aoData[r];return"search"===t?n._aFilterData:n._aSortData},1)}),qe("rows().invalidate()","row().invalidate()",function(t){return this.iterator("row",function(e,r){A(e,r,t)})}),qe("rows().indexes()","row().index()",function(){return this.iterator("row",function(t,e){return e},1)}),qe("rows().ids()","row().id()",function(t){for(var e=[],r=this.context,n=0,a=r.length;a>n;n++)for(var i=0,s=this[n].length;s>i;i++){var o=r[n].rowIdFn(r[n].aoData[this[n][i]]._aData);e.push((!0===t?"#":"")+o)}return new Ze(r,e)}),qe("rows().remove()","row().remove()",function(){var t=this;return this.iterator("row",function(e,r,n){var a=e.aoData;a.splice(r,1);for(var i=0,s=a.length;s>i;i++)null!==a[i].nTr&&(a[i].nTr._DT_RowIndex=i);M(e.aiDisplayMaster,r),M(e.aiDisplay,r),M(t[n],r,!1),Ne(e)}),this.iterator("table",function(t){for(var e=0,r=t.aoData.length;r>e;e++)t.aoData[e].idx=e}),this}),Ge("rows.add()",function(t){var e=this.iterator("table",function(e){var r,n,a,i=[];for(n=0,a=t.length;a>n;n++)r=t[n],i.push(r.nodeName&&"TR"===r.nodeName.toUpperCase()?y(e,r)[0]:S(e,r));return i},1),r=this.rows(-1);return r.pop(),r.push.apply(r,e.toArray()),r}),Ge("row()",function(t,e){return xr(this.rows(t,e))}),Ge("row().data()",function(t){var e=this.context;return t===r?e.length&&this.length?e[0].aoData[this[0]]._aData:r:(e[0].aoData[this[0]]._aData=t,A(e[0],this[0],"data"),this)}),Ge("row().node()",function(){var t=this.context;return t.length&&this.length?t[0].aoData[this[0]].nTr||null:null}),Ge("row.add()",function(t){t instanceof n&&t.length&&(t=t[0]);var e=this.iterator("table",function(e){return t.nodeName&&"TR"===t.nodeName.toUpperCase()?y(e,t)[0]:S(e,t)});return this.row(e[0])});var Ir=function(t,e){var n=t.context;n.length&&(n=n[0].aoData[e!==r?e:t[0]])&&n._details&&(n._details.remove(),n._detailsShow=r,n._details=r)},kr=function(t,e){var r=t.context;if(r.length&&t.length){var n=r[0].aoData[t[0]];if(n._details){(n._detailsShow=e)?n._details.insertAfter(n.nTr):n._details.detach();var a=r[0],i=new Ze(a),s=a.aoData;i.off("draw.dt.DT_details column-visibility.dt.DT_details destroy.dt.DT_details"),0<lr(s,"_details").length&&(i.on("draw.dt.DT_details",function(t,e){a===e&&i.rows({page:"current"}).eq(0).each(function(t){t=s[t],t._detailsShow&&t._details.insertAfter(t.nTr)})}),i.on("column-visibility.dt.DT_details",function(t,e){if(a===e)for(var r,n=m(e),i=0,o=s.length;o>i;i++)r=s[i],r._details&&r._details.children("td[colspan]").attr("colspan",n)}),i.on("destroy.dt.DT_details",function(t,e){if(a===e)for(var r=0,n=s.length;n>r;r++)s[r]._details&&Ir(i,r)}))}}};Ge("row().child()",function(t,e){var a=this.context;if(t===r)return a.length&&this.length?a[0].aoData[this[0]]._details:r;if(!0===t)this.child.show();else if(!1===t)Ir(this);else if(a.length&&this.length){var i=a[0],a=a[0].aoData[this[0]],s=[],o=function(t,e){if(n.isArray(t)||t instanceof n)for(var r=0,a=t.length;a>r;r++)o(t[r],e);else t.nodeName&&"tr"===t.nodeName.toLowerCase()?s.push(t):(r=n("<tr><td/></tr>").addClass(e),n("td",r).addClass(e).html(t)[0].colSpan=m(i),s.push(r[0]))};o(t,e),a._details&&a._details.remove(),a._details=n(s),a._detailsShow&&a._details.insertAfter(a.nTr)}return this}),Ge(["row().child.show()","row().child().show()"],function(){return kr(this,!0),this}),Ge(["row().child.hide()","row().child().hide()"],function(){return kr(this,!1),this}),Ge(["row().child.remove()","row().child().remove()"],function(){return Ir(this),this}),Ge("row().child.isShown()",function(){var t=this.context;return t.length&&this.length?t[0].aoData[this[0]]._detailsShow||!1:!1});var Mr=/^(.+):(name|visIdx|visible)$/,Ar=function(t,e,r,n,a){for(var r=[],n=0,i=a.length;i>n;n++)r.push(C(t,a[n],e));return r};Ge("columns()",function(t,e){t===r?t="":n.isPlainObject(t)&&(e=t,t="");var e=wr(e),a=this.iterator("table",function(r){var a=t,i=e,s=r.aoColumns,o=lr(s,"sName"),l=lr(s,"nTh");return Dr("column",a,function(t){var e=ar(t);if(""===t)return cr(s.length);if(null!==e)return[e>=0?e:s.length+e];if("function"==typeof t){var a=Tr(r,i);return n.map(s,function(e,n){return t(n,Ar(r,n,0,0,a),l[n])?n:null})}var u="string"==typeof t?t.match(Mr):"";if(!u)return n(l).filter(t).map(function(){return n.inArray(this,l)}).toArray();switch(u[2]){case"visIdx":case"visible":if(e=parseInt(u[1],10),0>e){var c=n.map(s,function(t,e){return t.bVisible?e:null});return[c[c.length+e]]}return[p(r,e)];case"name":return n.map(o,function(t,e){return t===u[1]?e:null})}},r,i)},1);return a.selector.cols=t,a.selector.opts=e,a}),qe("columns().header()","column().header()",function(){return this.iterator("column",function(t,e){return t.aoColumns[e].nTh},1)}),qe("columns().footer()","column().footer()",function(){return this.iterator("column",function(t,e){return t.aoColumns[e].nTf},1)}),qe("columns().data()","column().data()",function(){return this.iterator("column-rows",Ar,1)}),qe("columns().dataSrc()","column().dataSrc()",function(){return this.iterator("column",function(t,e){return t.aoColumns[e].mData},1)}),qe("columns().cache()","column().cache()",function(t){return this.iterator("column-rows",function(e,r,n,a,i){return ur(e.aoData,i,"search"===t?"_aFilterData":"_aSortData",r)},1)}),qe("columns().nodes()","column().nodes()",function(){return this.iterator("column-rows",function(t,e,r,n,a){return ur(t.aoData,a,"anCells",e)},1)}),qe("columns().visible()","column().visible()",function(t,e){return this.iterator("column",function(a,i){if(t===r)return a.aoColumns[i].bVisible;var s,o,l,u=a.aoColumns,c=u[i],h=a.aoData;if(t!==r&&c.bVisible!==t){if(t){var d=n.inArray(!0,lr(u,"bVisible"),i+1);for(s=0,o=h.length;o>s;s++)l=h[s].nTr,u=h[s].anCells,l&&l.insertBefore(u[i],u[d]||null)}else n(lr(a.aoData,"anCells",i)).detach();c.bVisible=t,j(a,a.aoHeader),j(a,a.aoFooter),(e===r||e)&&(f(a),(a.oScroll.sX||a.oScroll.sY)&&pe(a)),Oe(a,null,"column-visibility",[a,i,t]),Ae(a)}})}),qe("columns().indexes()","column().index()",function(t){return this.iterator("column",function(e,r){return"visible"===t?g(e,r):r},1)}),Ge("columns.adjust()",function(){return this.iterator("table",function(t){f(t)},1)}),Ge("column.index()",function(t,e){if(0!==this.context.length){var r=this.context[0];if("fromVisible"===t||"toData"===t)return p(r,e);if("fromData"===t||"toVisible"===t)return g(r,e)}}),Ge("column()",function(t,e){return xr(this.columns(t,e))}),Ge("cells()",function(t,e,a){if(n.isPlainObject(t)&&(t.row===r?(a=t,t=null):(a=e,e=null)),n.isPlainObject(e)&&(a=e,e=null),null===e||e===r)return this.iterator("table",function(e){var i,s,o,l,u,c,h,d=t,f=wr(a),p=e.aoData,g=Tr(e,f),m=hr(ur(p,g,"anCells")),_=n([].concat.apply([],m)),b=e.aoColumns.length;return Dr("cell",d,function(t){var a="function"==typeof t;if(null===t||t===r||a){for(s=[],o=0,l=g.length;l>o;o++)for(i=g[o],u=0;b>u;u++)c={row:i,column:u},a?(h=e.aoData[i],t(c,C(e,i,u),h.anCells?h.anCells[u]:null)&&s.push(c)):s.push(c);return s}return n.isPlainObject(t)?[t]:_.filter(t).map(function(t,e){return i=e.parentNode._DT_RowIndex,{row:i,column:n.inArray(e,p[i].anCells)}}).toArray()},e,f)});var i,s,o,l,u,c=this.columns(e,a),h=this.rows(t,a),d=this.iterator("table",function(t,e){for(i=[],s=0,o=h[e].length;o>s;s++)for(l=0,u=c[e].length;u>l;l++)i.push({row:h[e][s],column:c[e][l]});return i},1);return n.extend(d.selector,{cols:e,rows:t,opts:a}),d}),qe("cells().nodes()","cell().node()",function(){return this.iterator("cell",function(t,e,n){return(t=t.aoData[e].anCells)?t[n]:r},1)}),Ge("cells().data()",function(){return this.iterator("cell",function(t,e,r){return C(t,e,r)},1)}),qe("cells().cache()","cell().cache()",function(t){return t="search"===t?"_aFilterData":"_aSortData",this.iterator("cell",function(e,r,n){return e.aoData[r][t][n]},1)}),qe("cells().render()","cell().render()",function(t){return this.iterator("cell",function(e,r,n){return C(e,r,n,t)},1)}),qe("cells().indexes()","cell().index()",function(){return this.iterator("cell",function(t,e,r){return{row:e,column:r,columnVisible:g(t,r)}},1)}),qe("cells().invalidate()","cell().invalidate()",function(t){return this.iterator("cell",function(e,r,n){A(e,r,t,n)})}),Ge("cell()",function(t,e,r){return xr(this.cells(t,e,r))}),Ge("cell().data()",function(t){var e=this.context,n=this[0];return t===r?e.length&&n.length?C(e[0],n[0].row,n[0].column):r:(D(e[0],n[0].row,n[0].column,t),A(e[0],n[0].row,"data",n[0].column),this)}),Ge("order()",function(t,e){var a=this.context;return t===r?0!==a.length?a[0].aaSorting:r:("number"==typeof t?t=[[t,e]]:n.isArray(t[0])||(t=Array.prototype.slice.call(arguments)),this.iterator("table",function(e){e.aaSorting=t.slice()}))}),Ge("order.listener()",function(t,e,r){return this.iterator("table",function(n){Ie(n,t,e,r)})}),Ge(["columns().order()","column().order()"],function(t){var e=this;return this.iterator("table",function(r,a){var i=[];n.each(e[a],function(e,r){i.push([r,t])}),r.aaSorting=i})}),Ge("search()",function(t,e,a,i){var s=this.context;return t===r?0!==s.length?s[0].oPreviousSearch.sSearch:r:this.iterator("table",function(r){r.oFeatures.bFilter&&Z(r,n.extend({},r.oPreviousSearch,{sSearch:t+"",bRegex:null===e?!1:e,bSmart:null===a?!0:a,bCaseInsensitive:null===i?!0:i}),1)})}),qe("columns().search()","column().search()",function(t,e,a,i){return this.iterator("column",function(s,o){var l=s.aoPreSearchCols;return t===r?l[o].sSearch:void(s.oFeatures.bFilter&&(n.extend(l[o],{sSearch:t+"",bRegex:null===e?!1:e,bSmart:null===a?!0:a,bCaseInsensitive:null===i?!0:i}),Z(s,s.oPreviousSearch,1)))})}),Ge("state()",function(){return this.context.length?this.context[0].oSavedState:null}),Ge("state.clear()",function(){return this.iterator("table",function(t){t.fnStateSaveCallback.call(t.oInstance,t,{})})}),Ge("state.loaded()",function(){return this.context.length?this.context[0].oLoadedState:null}),Ge("state.save()",function(){return this.iterator("table",function(t){Ae(t)})}),Ve.versionCheck=Ve.fnVersionCheck=function(t){for(var e,r,n=Ve.version.split("."),t=t.split("."),a=0,i=t.length;i>a;a++)if(e=parseInt(n[a],10)||0,r=parseInt(t[a],10)||0,e!==r)return e>r;return!0},Ve.isDataTable=Ve.fnIsDataTable=function(t){var e=n(t).get(0),r=!1;return n.each(Ve.settings,function(t,a){var i=a.nScrollHead?n("table",a.nScrollHead)[0]:null,s=a.nScrollFoot?n("table",a.nScrollFoot)[0]:null;(a.nTable===e||i===e||s===e)&&(r=!0)}),r},Ve.tables=Ve.fnTables=function(t){var e=!1;n.isPlainObject(t)&&(e=t.api,t=t.visible);var r=n.map(Ve.settings,function(e){return!t||t&&n(e.nTable).is(":visible")?e.nTable:void 0});return e?new Ze(r):r},Ve.util={throttle:_e,escapeRegex:Y},Ve.camelToHungarian=i,Ge("$()",function(t,e){var r=this.rows(e).nodes(),r=n(r);return n([].concat(r.filter(t).toArray(),r.find(t).toArray()))}),n.each(["on","one","off"],function(t,e){Ge(e+"()",function(){var t=Array.prototype.slice.call(arguments);t[0].match(/\.dt\b/)||(t[0]+=".dt");var r=n(this.tables().nodes());return r[e].apply(r,t),this})}),Ge("clear()",function(){return this.iterator("table",function(t){k(t)})}),Ge("settings()",function(){return new Ze(this.context,this.context)}),Ge("init()",function(){var t=this.context;return t.length?t[0].oInit:null}),Ge("data()",function(){return this.iterator("table",function(t){return lr(t.aoData,"_aData")}).flatten()}),Ge("destroy()",function(e){return e=e||!1,this.iterator("table",function(r){var a,i=r.nTableWrapper.parentNode,s=r.oClasses,o=r.nTable,l=r.nTBody,u=r.nTHead,c=r.nTFoot,h=n(o),l=n(l),d=n(r.nTableWrapper),f=n.map(r.aoData,function(t){return t.nTr});r.bDestroying=!0,Oe(r,"aoDestroyCallback","destroy",[r]),e||new Ze(r).columns().visible(!0),d.unbind(".DT").find(":not(tbody *)").unbind(".DT"),n(t).unbind(".DT-"+r.sInstance),o!=u.parentNode&&(h.children("thead").detach(),h.append(u)),c&&o!=c.parentNode&&(h.children("tfoot").detach(),h.append(c)),r.aaSorting=[],r.aaSortingFixed=[],ke(r),n(f).removeClass(r.asStripeClasses.join(" ")),n("th, td",u).removeClass(s.sSortable+" "+s.sSortableAsc+" "+s.sSortableDesc+" "+s.sSortableNone),r.bJUI&&(n("th span."+s.sSortIcon+", td span."+s.sSortIcon,u).detach(),n("th, td",u).each(function(){var t=n("div."+s.sSortJUIWrapper,this);n(this).append(t.contents()),t.detach()})),l.children().detach(),l.append(f),u=e?"remove":"detach",h[u](),d[u](),!e&&i&&(i.insertBefore(o,r.nTableReinsertBefore),h.css("width",r.sDestroyWidth).removeClass(s.sTable),(a=r.asDestroyStripes.length)&&l.children().each(function(t){n(this).addClass(r.asDestroyStripes[t%a])})),i=n.inArray(r,Ve.settings),-1!==i&&Ve.settings.splice(i,1)})}),n.each(["column","row","cell"],function(t,e){Ge(e+"s().every()",function(t){return this.iterator(e,function(n,a,i,s,o){t.call(new Ze(n)[e](a,"cell"===e?i:r),a,i,s,o)})})}),Ge("i18n()",function(t,e,a){var i=this.context[0],t=x(t)(i.oLanguage);return t===r&&(t=e),a!==r&&n.isPlainObject(t)&&(t=t[a]!==r?t[a]:t._),t.replace("%d",a)}),Ve.version="1.10.8",Ve.settings=[],Ve.models={},Ve.models.oSearch={bCaseInsensitive:!0,sSearch:"",bRegex:!1,bSmart:!0},Ve.models.oRow={nTr:null,anCells:null,_aData:[],_aSortData:null,_aFilterData:null,_sFilterRow:null,_sRowStripe:"",src:null,idx:-1},Ve.models.oColumn={idx:null,aDataSort:null,asSorting:null,bSearchable:null,bSortable:null,bVisible:null,_sManualType:null,_bAttrSrc:!1,fnCreatedCell:null,fnGetData:null,fnSetData:null,mData:null,mRender:null,nTh:null,nTf:null,sClass:null,sContentPadding:null,sDefaultContent:null,sName:null,sSortDataType:"std",sSortingClass:null,sSortingClassJUI:null,sTitle:null,sType:null,sWidth:null,sWidthOrig:null},Ve.defaults={aaData:null,aaSorting:[[0,"asc"]],aaSortingFixed:[],ajax:null,aLengthMenu:[10,25,50,100],aoColumns:null,aoColumnDefs:null,aoSearchCols:[],asStripeClasses:null,bAutoWidth:!0,bDeferRender:!1,bDestroy:!1,bFilter:!0,bInfo:!0,bJQueryUI:!1,bLengthChange:!0,bPaginate:!0,bProcessing:!1,bRetrieve:!1,bScrollCollapse:!1,bServerSide:!1,bSort:!0,bSortMulti:!0,bSortCellsTop:!1,bSortClasses:!0,bStateSave:!1,fnCreatedRow:null,fnDrawCallback:null,fnFooterCallback:null,fnFormatNumber:function(t){return t.toString().replace(/\B(?=(\d{3})+(?!\d))/g,this.oLanguage.sThousands)},fnHeaderCallback:null,fnInfoCallback:null,fnInitComplete:null,fnPreDrawCallback:null,fnRowCallback:null,fnServerData:null,fnServerParams:null,fnStateLoadCallback:function(t){try{return JSON.parse((-1===t.iStateDuration?sessionStorage:localStorage).getItem("DataTables_"+t.sInstance+"_"+location.pathname))}catch(e){}},fnStateLoadParams:null,fnStateLoaded:null,fnStateSaveCallback:function(t,e){try{(-1===t.iStateDuration?sessionStorage:localStorage).setItem("DataTables_"+t.sInstance+"_"+location.pathname,JSON.stringify(e))}catch(r){}},fnStateSaveParams:null,iStateDuration:7200,iDeferLoading:null,iDisplayLength:10,iDisplayStart:0,iTabIndex:0,oClasses:{},oLanguage:{oAria:{sSortAscending:": activate to sort column ascending",sSortDescending:": activate to sort column descending"},oPaginate:{sFirst:"First",sLast:"Last",sNext:"Next",sPrevious:"Previous"},sEmptyTable:"No data available in table",sInfo:"Showing _START_ to _END_ of _TOTAL_ entries",sInfoEmpty:"Showing 0 to 0 of 0 entries",sInfoFiltered:"(filtered from _MAX_ total entries)",sInfoPostFix:"",sDecimal:"",sThousands:",",sLengthMenu:"Show _MENU_ entries",sLoadingRecords:"Loading...",sProcessing:"Processing...",sSearch:"Search:",sSearchPlaceholder:"",sUrl:"",sZeroRecords:"No matching records found"},oSearch:n.extend({},Ve.models.oSearch),sAjaxDataProp:"data",sAjaxSource:null,sDom:"lfrtip",searchDelay:null,sPaginationType:"simple_numbers",sScrollX:"",sScrollXInner:"",sScrollY:"",sServerMethod:"GET",renderer:null,rowId:"DT_RowId"},a(Ve.defaults),Ve.defaults.column={aDataSort:null,iDataSort:-1,asSorting:["asc","desc"],bSearchable:!0,bSortable:!0,bVisible:!0,fnCreatedCell:null,mData:null,mRender:null,sCellType:"td",sClass:"",sContentPadding:"",sDefaultContent:null,sName:"",sSortDataType:"std",sTitle:null,sType:null,sWidth:null},a(Ve.defaults.column),Ve.models.oSettings={oFeatures:{bAutoWidth:null,bDeferRender:null,bFilter:null,bInfo:null,bLengthChange:null,bPaginate:null,bProcessing:null,bServerSide:null,bSort:null,bSortMulti:null,bSortClasses:null,bStateSave:null},oScroll:{bCollapse:null,iBarWidth:0,sX:null,sXInner:null,sY:null},oLanguage:{fnInfoCallback:null},oBrowser:{bScrollOversize:!1,bScrollbarLeft:!1,bBounding:!1},ajax:null,aanFeatures:[],aoData:[],aiDisplay:[],aiDisplayMaster:[],aIds:{},aoColumns:[],aoHeader:[],aoFooter:[],oPreviousSearch:{},aoPreSearchCols:[],aaSorting:null,aaSortingFixed:[],asStripeClasses:null,asDestroyStripes:[],sDestroyWidth:0,aoRowCallback:[],aoHeaderCallback:[],aoFooterCallback:[],aoDrawCallback:[],aoRowCreatedCallback:[],aoPreDrawCallback:[],aoInitComplete:[],aoStateSaveParams:[],aoStateLoadParams:[],aoStateLoaded:[],sTableId:"",nTable:null,nTHead:null,nTFoot:null,nTBody:null,nTableWrapper:null,bDeferLoading:!1,bInitialised:!1,aoOpenRows:[],sDom:null,searchDelay:null,sPaginationType:"two_button",iStateDuration:0,aoStateSave:[],aoStateLoad:[],oSavedState:null,oLoadedState:null,sAjaxSource:null,sAjaxDataProp:null,bAjaxDataGet:!0,jqXHR:null,json:r,oAjaxData:r,fnServerData:null,aoServerParams:[],sServerMethod:null,fnFormatNumber:null,aLengthMenu:null,iDraw:0,bDrawing:!1,iDrawError:-1,_iDisplayLength:10,_iDisplayStart:0,_iRecordsTotal:0,_iRecordsDisplay:0,bJUI:null,oClasses:{},bFiltered:!1,bSorted:!1,bSortCellsTop:null,oInit:null,aoDestroyCallback:[],fnRecordsTotal:function(){return"ssp"==We(this)?1*this._iRecordsTotal:this.aiDisplayMaster.length},fnRecordsDisplay:function(){return"ssp"==We(this)?1*this._iRecordsDisplay:this.aiDisplay.length},fnDisplayEnd:function(){var t=this._iDisplayLength,e=this._iDisplayStart,r=e+t,n=this.aiDisplay.length,a=this.oFeatures,i=a.bPaginate;return a.bServerSide?!1===i||-1===t?e+n:Math.min(e+t,this._iRecordsDisplay):!i||r>n||-1===t?n:r},oInstance:null,sInstance:null,iTabIndex:0,nScrollHead:null,nScrollFoot:null,aLastSort:[],oPlugins:{},rowIdFn:null,rowId:null},Ve.ext=Xe={buttons:{},classes:{},errMode:"alert",feature:[],search:[],selector:{cell:[],column:[],row:[]},internal:{},legacy:{ajax:null},pager:{},renderer:{pageButton:{},header:{}},order:{},type:{detect:[],search:{},order:{}},_unique:0,fnVersionCheck:Ve.fnVersionCheck,iApiIndex:0,oJUIClasses:{},sVersion:Ve.version},n.extend(Xe,{afnFiltering:Xe.search,aTypes:Xe.type.detect,ofnSearch:Xe.type.search,oSort:Xe.type.order,afnSortData:Xe.order,aoFeatures:Xe.feature,oApi:Xe.internal,oStdClasses:Xe.classes,oPagination:Xe.pager}),n.extend(Ve.ext.classes,{sTable:"dataTable",sNoFooter:"no-footer",sPageButton:"paginate_button",sPageButtonActive:"current",sPageButtonDisabled:"disabled",sStripeOdd:"odd",sStripeEven:"even",sRowEmpty:"dataTables_empty",sWrapper:"dataTables_wrapper",sFilter:"dataTables_filter",sInfo:"dataTables_info",sPaging:"dataTables_paginate paging_",sLength:"dataTables_length",sProcessing:"dataTables_processing",sSortAsc:"sorting_asc",sSortDesc:"sorting_desc",sSortable:"sorting",sSortableAsc:"sorting_asc_disabled",sSortableDesc:"sorting_desc_disabled",sSortableNone:"sorting_disabled",sSortColumn:"sorting_",sFilterInput:"",sLengthSelect:"",sScrollWrapper:"dataTables_scroll",sScrollHead:"dataTables_scrollHead",sScrollHeadInner:"dataTables_scrollHeadInner",sScrollBody:"dataTables_scrollBody",sScrollFoot:"dataTables_scrollFoot",sScrollFootInner:"dataTables_scrollFootInner",sHeaderTH:"",sFooterTH:"",sSortJUIAsc:"",sSortJUIDesc:"",sSortJUI:"",sSortJUIAscAllowed:"",sSortJUIDescAllowed:"",sSortJUIWrapper:"",sSortIcon:"",sJUIHeader:"",sJUIFooter:""});var Lr="",Lr="",Pr=Lr+"ui-state-default",Fr=Lr+"css_right ui-icon ui-icon-",Rr=Lr+"fg-toolbar ui-toolbar ui-widget-header ui-helper-clearfix";n.extend(Ve.ext.oJUIClasses,Ve.ext.classes,{sPageButton:"fg-button ui-button "+Pr,sPageButtonActive:"ui-state-disabled",sPageButtonDisabled:"ui-state-disabled",sPaging:"dataTables_paginate fg-buttonset ui-buttonset fg-buttonset-multi ui-buttonset-multi paging_",sSortAsc:Pr+" sorting_asc",sSortDesc:Pr+" sorting_desc",sSortable:Pr+" sorting",sSortableAsc:Pr+" sorting_asc_disabled",sSortableDesc:Pr+" sorting_desc_disabled",sSortableNone:Pr+" sorting_disabled",sSortJUIAsc:Fr+"triangle-1-n",sSortJUIDesc:Fr+"triangle-1-s",sSortJUI:Fr+"carat-2-n-s",sSortJUIAscAllowed:Fr+"carat-1-n",sSortJUIDescAllowed:Fr+"carat-1-s",sSortJUIWrapper:"DataTables_sort_wrapper",sSortIcon:"DataTables_sort_icon",sScrollHead:"dataTables_scrollHead "+Pr,sScrollFoot:"dataTables_scrollFoot "+Pr,sHeaderTH:Pr,sFooterTH:Pr,sJUIHeader:Rr+" ui-corner-tl ui-corner-tr",sJUIFooter:Rr+" ui-corner-bl ui-corner-br"});var jr=Ve.ext.pager;n.extend(jr,{simple:function(){return["previous","next"]},full:function(){return["first","previous","next","last"]},numbers:function(t,e){return[ze(t,e)]},simple_numbers:function(t,e){return["previous",ze(t,e),"next"]},full_numbers:function(t,e){return["first","previous",ze(t,e),"next","last"]},_numbers:ze,numbers_length:7}),n.extend(!0,Ve.ext.renderer,{pageButton:{_:function(t,r,a,i,s,o){var l,u,c,h=t.oClasses,d=t.oLanguage.oPaginate,f=0,p=function(e,r){var i,c,g,m,_=function(e){ce(t,e.data.action,!0)};for(i=0,c=r.length;c>i;i++)if(m=r[i],n.isArray(m))g=n("<"+(m.DT_el||"div")+"/>").appendTo(e),p(g,m);else{switch(l=null,u="",m){case"ellipsis":e.append('<span class="ellipsis">…</span>');break;case"first":l=d.sFirst,u=m+(s>0?"":" "+h.sPageButtonDisabled);break;case"previous":l=d.sPrevious,u=m+(s>0?"":" "+h.sPageButtonDisabled);
|
4 |
+
break;case"next":l=d.sNext,u=m+(o-1>s?"":" "+h.sPageButtonDisabled);break;case"last":l=d.sLast,u=m+(o-1>s?"":" "+h.sPageButtonDisabled);break;default:l=m+1,u=s===m?h.sPageButtonActive:""}null!==l&&(g=n("<a>",{"class":h.sPageButton+" "+u,"aria-controls":t.sTableId,"data-dt-idx":f,tabindex:t.iTabIndex,id:0===a&&"string"==typeof m?t.sTableId+"_"+m:null}).html(l).appendTo(e),He(g,{action:m},_),f++)}};try{c=n(r).find(e.activeElement).data("dt-idx")}catch(g){}p(n(r).empty(),i),c&&n(r).find("[data-dt-idx="+c+"]").focus()}}}),n.extend(Ve.ext.type.detect,[function(t,e){var r=e.oLanguage.sDecimal;return sr(t,r)?"num"+r:null},function(t){if(!(!t||t instanceof Date||Ke.test(t)&&tr.test(t)))return null;var e=Date.parse(t);return null!==e&&!isNaN(e)||nr(t)?"date":null},function(t,e){var r=e.oLanguage.sDecimal;return sr(t,r,!0)?"num-fmt"+r:null},function(t,e){var r=e.oLanguage.sDecimal;return or(t,r)?"html-num"+r:null},function(t,e){var r=e.oLanguage.sDecimal;return or(t,r,!0)?"html-num-fmt"+r:null},function(t){return nr(t)||"string"==typeof t&&-1!==t.indexOf("<")?"html":null}]),n.extend(Ve.ext.type.search,{html:function(t){return nr(t)?t:"string"==typeof t?t.replace(Qe," ").replace(Ye,""):""},string:function(t){return nr(t)?t:"string"==typeof t?t.replace(Qe," "):t}});var Hr=function(t,e,r,n){return 0===t||t&&"-"!==t?(e&&(t=ir(t,e)),t.replace&&(r&&(t=t.replace(r,"")),n&&(t=t.replace(n,""))),1*t):-1/0};return n.extend(Xe.type.order,{"date-pre":function(t){return Date.parse(t)||0},"html-pre":function(t){return nr(t)?"":t.replace?t.replace(/<.*?>/g,"").toLowerCase():t+""},"string-pre":function(t){return nr(t)?"":"string"==typeof t?t.toLowerCase():t.toString?t.toString():""},"string-asc":function(t,e){return e>t?-1:t>e?1:0},"string-desc":function(t,e){return e>t?1:t>e?-1:0}}),Ue(""),n.extend(!0,Ve.ext.renderer,{header:{_:function(t,e,r,a){n(t.nTable).on("order.dt.DT",function(n,i,s,o){t===i&&(n=r.idx,e.removeClass(r.sSortingClass+" "+a.sSortAsc+" "+a.sSortDesc).addClass("asc"==o[n]?a.sSortAsc:"desc"==o[n]?a.sSortDesc:r.sSortingClass))})},jqueryui:function(t,e,r,a){n("<div/>").addClass(a.sSortJUIWrapper).append(e.contents()).append(n("<span/>").addClass(a.sSortIcon+" "+r.sSortingClassJUI)).appendTo(e),n(t.nTable).on("order.dt.DT",function(n,i,s,o){t===i&&(n=r.idx,e.removeClass(a.sSortAsc+" "+a.sSortDesc).addClass("asc"==o[n]?a.sSortAsc:"desc"==o[n]?a.sSortDesc:r.sSortingClass),e.find("span."+a.sSortIcon).removeClass(a.sSortJUIAsc+" "+a.sSortJUIDesc+" "+a.sSortJUI+" "+a.sSortJUIAscAllowed+" "+a.sSortJUIDescAllowed).addClass("asc"==o[n]?a.sSortJUIAsc:"desc"==o[n]?a.sSortJUIDesc:r.sSortingClassJUI))})}}}),Ve.render={number:function(t,e,r,n,a){return{display:function(i){if("number"!=typeof i&&"string"!=typeof i)return i;var s=0>i?"-":"",i=Math.abs(parseFloat(i)),o=parseInt(i,10),i=r?e+(i-o).toFixed(r).substring(2):"";return s+(n||"")+o.toString().replace(/\B(?=(\d{3})+(?!\d))/g,t)+i+(a||"")}}}},n.extend(Ve.ext.internal,{_fnExternApiFunc:Je,_fnBuildAjax:W,_fnAjaxUpdate:z,_fnAjaxParameters:U,_fnAjaxUpdateDraw:J,_fnAjaxDataSrc:V,_fnAddColumn:h,_fnColumnOptions:d,_fnAdjustColumnSizing:f,_fnVisibleToColumnIndex:p,_fnColumnIndexToVisible:g,_fnVisbleColumns:m,_fnGetColumns:_,_fnColumnTypes:b,_fnApplyColumnDefs:v,_fnHungarianMap:a,_fnCamelToHungarian:i,_fnLanguageCompat:s,_fnBrowserDetect:u,_fnAddData:S,_fnAddTr:y,_fnNodeToDataIndex:function(t,e){return e._DT_RowIndex!==r?e._DT_RowIndex:null},_fnNodeToColumnIndex:function(t,e,r){return n.inArray(r,t.aoData[e].anCells)},_fnGetCellData:C,_fnSetCellData:D,_fnSplitObjNotation:w,_fnGetObjectDataFn:x,_fnSetObjectDataFn:T,_fnGetDataMaster:I,_fnClearTable:k,_fnDeleteIndex:M,_fnInvalidate:A,_fnGetRowElements:L,_fnCreateTr:P,_fnBuildHead:R,_fnDrawHead:j,_fnDraw:H,_fnReDraw:E,_fnAddOptionsHtml:O,_fnDetectHeader:N,_fnGetUniqueThs:B,_fnFeatureHtmlFilter:X,_fnFilterComplete:Z,_fnFilterCustom:G,_fnFilterColumn:q,_fnFilter:$,_fnFilterCreateSearch:Q,_fnEscapeRegex:Y,_fnFilterData:K,_fnFeatureHtmlInfo:re,_fnUpdateInfo:ne,_fnInfoMacros:ae,_fnInitialise:ie,_fnInitComplete:se,_fnLengthChange:oe,_fnFeatureHtmlLength:le,_fnFeatureHtmlPaginate:ue,_fnPageChange:ce,_fnFeatureHtmlProcessing:he,_fnProcessingDisplay:de,_fnFeatureHtmlTable:fe,_fnScrollDraw:pe,_fnApplyToChildren:ge,_fnCalculateColumnWidths:me,_fnThrottle:_e,_fnConvertToWidth:be,_fnGetWidestNode:ve,_fnGetMaxLenString:Se,_fnStringToCss:ye,_fnScrollBarWidth:Ce,_fnSortFlatten:De,_fnSort:we,_fnSortAria:xe,_fnSortListener:Te,_fnSortAttachListener:Ie,_fnSortingClasses:ke,_fnSortData:Me,_fnSaveState:Ae,_fnLoadState:Le,_fnSettingsFromNode:Pe,_fnLog:Fe,_fnMap:Re,_fnBindAction:He,_fnCallbackReg:Ee,_fnCallbackFire:Oe,_fnLengthOverflow:Ne,_fnRenderer:Be,_fnDataSource:We,_fnRowAttributes:F,_fnCalculateEnd:function(){}}),n.fn.dataTable=Ve,n.fn.dataTableSettings=Ve.settings,n.fn.dataTableExt=Ve.ext,n.fn.DataTable=function(t){return n(this).dataTable(t).api()},n.each(Ve,function(t,e){n.fn.DataTable[t]=e}),n.fn.dataTable};"function"==typeof define&&define.amd?define("datatables",["jquery"],n):"object"==typeof exports?module.exports=n(require("jquery")):jQuery&&!jQuery.fn.dataTable&&n(jQuery)}(window,document);
|
assets/js/maps.js
ADDED
@@ -0,0 +1,307 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
! function($, window, document, undefined) {
|
2 |
+
function Map_Control(e) {
|
3 |
+
this.options = e
|
4 |
+
}
|
5 |
+
|
6 |
+
function overlay_generator(e, o) {
|
7 |
+
this.tileSize = e, this.overlay_options = o
|
8 |
+
}
|
9 |
+
|
10 |
+
function GoogleMaps(e, o) {
|
11 |
+
var t;
|
12 |
+
console.log(o), this.element = e, this.map_data = $.extend({}, {}, o), t = this.map_data.map_options, this.settings = $.extend({
|
13 |
+
zoom: "5",
|
14 |
+
map_type_id: "ROADMAP",
|
15 |
+
scroll_wheel: !0,
|
16 |
+
map_visual_refresh: !1,
|
17 |
+
pan_control: "true",
|
18 |
+
pan_control_position: "TOP_LEFT",
|
19 |
+
zoom_control: !0,
|
20 |
+
zoom_control_style: "SMALL",
|
21 |
+
zoom_control_position: "TOP_LEFT",
|
22 |
+
map_type_control: !0,
|
23 |
+
map_type_control_style: "HORIZONTAL_BAR",
|
24 |
+
map_type_control_position: "RIGHT_TOP",
|
25 |
+
scale_control: !0,
|
26 |
+
street_view_control: !0,
|
27 |
+
street_view_control_position: "TOP_LEFT",
|
28 |
+
overview_map_control: !0,
|
29 |
+
center_lat: "40.6153983",
|
30 |
+
center_lng: "-74.2535216",
|
31 |
+
draggable: !0
|
32 |
+
}, {}, t), this.container = $("div[rel='" + $(this.element).attr("id") + "']"), this.directionsService = new google.maps.DirectionsService, this.directionsDisplay = new google.maps.DirectionsRenderer, this.drawingmanager = new Object, this.geocoder = new google.maps.Geocoder, this.places = new Array, this.show_places = new Array, this.categories = new Object, this.all_shapes = [], this.wpgmp_polylines = [], this.wpgmp_polygons = [], this.wpgmp_circles = [], this.wpgmp_shape_events = [], this.wpgmp_rectangles = [], this.per_page_value, this.current_amenities = new Array, this.route_directions = new Array, this.init()
|
33 |
+
}
|
34 |
+
Map_Control.prototype.create_element = function(e, o, t) {
|
35 |
+
var a = document.createElement("div");
|
36 |
+
a.style.backgroundColor = "#fff", a.style.border = "2px solid #fff", a.style.borderRadius = "3px", a.style.boxShadow = "0 2px 6px rgba(0,0,0,.3)", a.style.cursor = "pointer", a.style.marginBottom = "22px", a.style.textAlign = "center", a.title = "Click to recenter the map", e.appendChild(a);
|
37 |
+
var n = document.createElement("div");
|
38 |
+
n.style.color = "rgb(25,25,25)", n.style.fontFamily = "Roboto,Arial,sans-serif", n.style.fontSize = "16px", n.style.lineHeight = "38px", n.style.paddingLeft = "5px", n.style.paddingRight = "5px", n.innerHTML = t, a.appendChild(n), google.maps.event.addDomListener(a, "click", function() {
|
39 |
+
o.setCenter(new google.maps.LatLng(41.85, -87.65))
|
40 |
+
})
|
41 |
+
}, overlay_generator.prototype.getTile = function(e, o, t) {
|
42 |
+
var a = t.createElement("div");
|
43 |
+
return a.innerHTML = e, a.style.width = "200px", a.style.height = "300px", a.style.fontSize = this.overlay_options.font_size + "px", a.style.borderStyle = this.overlay_options.border_style, a.style.borderWidth = this.overlay_options.border_width + "px", a.style.borderColor = this.overlay_options.border_color, a
|
44 |
+
}, GoogleMaps.prototype = {
|
45 |
+
init: function() {
|
46 |
+
var map_obj = this,
|
47 |
+
center = new google.maps.LatLng(map_obj.settings.center_lat, map_obj.settings.center_lng);
|
48 |
+
map_obj.map = new google.maps.Map(map_obj.element, {
|
49 |
+
zoom: parseInt(map_obj.settings.zoom),
|
50 |
+
center: center,
|
51 |
+
scrollwheel: "false" != map_obj.settings.scroll_wheel,
|
52 |
+
panControl: 1 == map_obj.settings.pan_control,
|
53 |
+
panControlOptions: {
|
54 |
+
position: eval("google.maps.ControlPosition." + map_obj.settings.pan_control_position)
|
55 |
+
},
|
56 |
+
zoomControl: 1 == map_obj.settings.zoom_control,
|
57 |
+
zoomControlOptions: {
|
58 |
+
style: eval("google.maps.ZoomControlStyle." + map_obj.settings.zoom_control_style),
|
59 |
+
position: eval("google.maps.ControlPosition." + map_obj.settings.zoom_control_position)
|
60 |
+
},
|
61 |
+
mapTypeControl: 1 == map_obj.settings.map_type_control,
|
62 |
+
mapTypeControlOptions: {
|
63 |
+
style: eval("google.maps.MapTypeControlStyle." + map_obj.settings.map_type_control_style),
|
64 |
+
position: eval("google.maps.ControlPosition." + map_obj.settings.map_type_control_position)
|
65 |
+
},
|
66 |
+
scaleControl: 1 == map_obj.settings.scale_control,
|
67 |
+
streetViewControl: 1 == map_obj.settings.street_view_control,
|
68 |
+
streetViewControlOptions: {
|
69 |
+
position: eval("google.maps.ControlPosition." + map_obj.settings.street_view_control_position)
|
70 |
+
},
|
71 |
+
overviewMapControl: 1 == map_obj.settings.overview_map_control,
|
72 |
+
overviewMapControlOptions: {
|
73 |
+
opened: map_obj.settings.overview_map_control
|
74 |
+
},
|
75 |
+
draggable: map_obj.settings.draggable,
|
76 |
+
mapTypeId: eval("google.maps.MapTypeId." + map_obj.settings.map_type_id),
|
77 |
+
styles: eval(map_obj.map_data.styles)
|
78 |
+
}), map_obj.map_loaded(), map_obj.responsive_map(), map_obj.create_markers(), map_obj.display_markers(), "undefined" != typeof map_obj.map_data.street_view && map_obj.set_streetview(center), "undefined" != typeof map_obj.map_data.bicyle_layer && map_obj.set_bicyle_layer(), "undefined" != typeof map_obj.map_data.traffic_layer && map_obj.set_traffic_layer(), "undefined" != typeof map_obj.map_data.transit_layer && map_obj.set_transit_layer(), "45" == typeof map_obj.settings.display_45_imagery && map_obj.set_45_imagery(), typeof map_obj.map_data.map_visual_refresh === !0 && map_obj.set_visual_refresh(), $(map_obj.container).on("click", ".place_title", function() {
|
79 |
+
map_obj.open_infowindow($(this).data("marker")), $("html, body").animate({
|
80 |
+
scrollTop: $(map_obj.container).offset().top
|
81 |
+
}, 500)
|
82 |
+
}), map_obj.google_auto_suggest($(".wpgmp_auto_suggest")), 1 == map_obj.settings.show_center_circle && map_obj.show_center_circle()
|
83 |
+
},
|
84 |
+
createMarker: function(e) {
|
85 |
+
var o = this,
|
86 |
+
t = o.map,
|
87 |
+
a = (e.geometry.location, {
|
88 |
+
url: e.icon,
|
89 |
+
size: new google.maps.Size(25, 25),
|
90 |
+
scaledSize: new google.maps.Size(25, 25)
|
91 |
+
});
|
92 |
+
e.marker = new google.maps.Marker({
|
93 |
+
map: t,
|
94 |
+
position: e.geometry.location,
|
95 |
+
icon: a
|
96 |
+
}), google.maps.event.addListener(e.marker, "click", function() {
|
97 |
+
o.amenity_infowindow.setContent(e.name), o.amenity_infowindow.open(t, this)
|
98 |
+
}), o.current_amenities.push(e)
|
99 |
+
},
|
100 |
+
get_user_position: function(e, o) {
|
101 |
+
var t = this;
|
102 |
+
t.user_lat_lng ? e && e(t.user_lat_lng) : navigator.geolocation.getCurrentPosition(function(o) {
|
103 |
+
t.user_lat_lng = new google.maps.LatLng(o.coords.latitude, o.coords.longitude), e && e(t.user_lat_lng)
|
104 |
+
}, function(e) {
|
105 |
+
o && o(e)
|
106 |
+
}, {
|
107 |
+
enableHighAccuracy: !0,
|
108 |
+
timeout: 5e3,
|
109 |
+
maximumAge: 0
|
110 |
+
})
|
111 |
+
},
|
112 |
+
marker_bind: function(e) {
|
113 |
+
map_obj = this, google.maps.event.addListener(e, "drag", function() {
|
114 |
+
var o = e.getPosition();
|
115 |
+
map_obj.geocoder.geocode({
|
116 |
+
latLng: o
|
117 |
+
}, function(e, o) {
|
118 |
+
if (o == google.maps.GeocoderStatus.OK && ($("#googlemap_address").val(e[0].formatted_address), $(".google_city").val(map_obj.wpgmp_finddata(e[0], "administrative_area_level_3") || map_obj.wpgmp_finddata(e[0], "locality")), $(".google_state").val(map_obj.wpgmp_finddata(e[0], "administrative_area_level_1")), $(".google_country").val(map_obj.wpgmp_finddata(e[0], "country")), e[0].address_components))
|
119 |
+
for (var t = 0; t < e[0].address_components.length; t++)
|
120 |
+
for (var a = 0; a < e[0].address_components[t].types.length; a++) "postal_code" == e[0].address_components[t].types[a] && (wpgmp_zip_code = e[0].address_components[t].long_name, $(".google_postal_code").val(wpgmp_zip_code))
|
121 |
+
}), $(".google_latitude").val(o.lat()), $(".google_longitude").val(o.lng())
|
122 |
+
})
|
123 |
+
},
|
124 |
+
google_auto_suggest: function(e) {
|
125 |
+
var o = this;
|
126 |
+
e.each(function() {
|
127 |
+
var e = this,
|
128 |
+
t = new google.maps.places.Autocomplete(this);
|
129 |
+
if (t.bindTo("bounds", o.map), "location_address" == $(this).attr("name")) {
|
130 |
+
var a = (new google.maps.InfoWindow, new google.maps.Marker({
|
131 |
+
map: o.map,
|
132 |
+
draggable: !0,
|
133 |
+
anchorPoint: new google.maps.Point(0, -29)
|
134 |
+
}));
|
135 |
+
o.marker_bind(a), google.maps.event.addListener(t, "place_changed", function() {
|
136 |
+
var e = t.getPlace();
|
137 |
+
if (e.geometry) {
|
138 |
+
if (e.geometry.viewport ? o.map.fitBounds(e.geometry.viewport) : (o.map.setCenter(e.geometry.location), o.map.setZoom(17)), $(".google_latitude").val(e.geometry.location.lat()), $(".google_longitude").val(e.geometry.location.lng()), $(".google_city").val(o.wpgmp_finddata(e, "administrative_area_level_3") || o.wpgmp_finddata(e, "locality")), $(".google_state").val(o.wpgmp_finddata(e, "administrative_area_level_1")), $(".google_country").val(o.wpgmp_finddata(e, "country")), e.address_components)
|
139 |
+
for (var n = 0; n < e.address_components.length; n++)
|
140 |
+
for (var i = 0; i < e.address_components[n].types.length; i++) "postal_code" == e.address_components[n].types[i] && (wpgmp_zip_code = e.address_components[n].long_name, $(".google_postal_code").val(wpgmp_zip_code));
|
141 |
+
a.setPosition(e.geometry.location), a.setVisible(!0)
|
142 |
+
}
|
143 |
+
})
|
144 |
+
} else google.maps.event.addListener(t, "place_changed", function() {
|
145 |
+
var o = t.getPlace();
|
146 |
+
o.geometry && ($().val(o.geometry.location.lat()), $(e).data("longitude", o.geometry.location.lng()), $(e).data("latitude", o.geometry.location.lat()))
|
147 |
+
})
|
148 |
+
})
|
149 |
+
},
|
150 |
+
wpgmp_finddata: function(e, o) {
|
151 |
+
var t = "";
|
152 |
+
for (i = 0; i < e.address_components.length; ++i) {
|
153 |
+
var a = e.address_components[i];
|
154 |
+
$.each(a.types, function(e, n) {
|
155 |
+
n == o && (t = a.long_name)
|
156 |
+
})
|
157 |
+
}
|
158 |
+
return t
|
159 |
+
},
|
160 |
+
open_infowindow: function(e) {
|
161 |
+
var o = this;
|
162 |
+
$.each(this.map_data.places, function(t, a) {
|
163 |
+
parseInt(a.id) == parseInt(e) && 1 == a.marker.visible ? (a.infowindow.open(o.map, a.marker), console.log(a)) : a.infowindow.close()
|
164 |
+
})
|
165 |
+
},
|
166 |
+
place_info: function(e) {
|
167 |
+
var o;
|
168 |
+
return $.each(this.places, function(t, a) {
|
169 |
+
parseInt(a.id) == parseInt(e) && (o = a)
|
170 |
+
}), o
|
171 |
+
},
|
172 |
+
event_listener: function(e, o, t) {
|
173 |
+
google.maps.event.addListener(e, o, t)
|
174 |
+
},
|
175 |
+
set_visual_refresh: function() {
|
176 |
+
google.maps.visualRefresh = !0
|
177 |
+
},
|
178 |
+
set_45_imagery: function() {
|
179 |
+
this.map.setTilt(45)
|
180 |
+
},
|
181 |
+
set_bicyle_layer: function() {
|
182 |
+
var e = new google.maps.BicyclingLayer;
|
183 |
+
e.setMap(this.map)
|
184 |
+
},
|
185 |
+
set_traffic_layer: function() {
|
186 |
+
var e = new google.maps.TrafficLayer;
|
187 |
+
e.setMap(this.map)
|
188 |
+
},
|
189 |
+
set_transit_layer: function() {
|
190 |
+
var e = new google.maps.TransitLayer;
|
191 |
+
e.setMap(this.map)
|
192 |
+
},
|
193 |
+
set_streetview: function(e) {
|
194 |
+
var o = {
|
195 |
+
position: e,
|
196 |
+
addressControlOptions: {
|
197 |
+
position: google.maps.ControlPosition.BOTTOM_CENTER
|
198 |
+
},
|
199 |
+
linksControl: this.map_data.street_view.links_control,
|
200 |
+
panControl: this.map_data.street_view.street_view_pan_control,
|
201 |
+
zoomControlOptions: {
|
202 |
+
style: google.maps.ZoomControlStyle.SMALL
|
203 |
+
},
|
204 |
+
enableCloseButton: this.map_data.street_view.street_view_close_button
|
205 |
+
};
|
206 |
+
"" != this.map_data.street_view.pov_heading && (o.pov = {
|
207 |
+
heading: parseInt(this.map_data.street_view.pov_heading),
|
208 |
+
pitch: parseInt(this.map_data.street_view.pov_pitch)
|
209 |
+
}), new google.maps.StreetViewPanorama(this.element, o)
|
210 |
+
},
|
211 |
+
map_loaded: function() {
|
212 |
+
var e = this,
|
213 |
+
o = e.map;
|
214 |
+
google.maps.event.addListenerOnce(o, "idle", function() {
|
215 |
+
var e = o.getCenter();
|
216 |
+
google.maps.event.trigger(o, "resize"), o.setCenter(e)
|
217 |
+
}), "true" == e.settings.center_by_nearest && e.center_by_nearest()
|
218 |
+
},
|
219 |
+
responsive_map: function() {
|
220 |
+
var e = this,
|
221 |
+
o = e.map;
|
222 |
+
google.maps.event.addDomListener(window, "resize", function() {
|
223 |
+
var e = o.getCenter();
|
224 |
+
google.maps.event.trigger(o, "resize"), o.setCenter(e), o.getBounds()
|
225 |
+
})
|
226 |
+
},
|
227 |
+
create_markers: function() {
|
228 |
+
var e = this,
|
229 |
+
o = e.map_data.places;
|
230 |
+
$.each(o, function(o, t) {
|
231 |
+
if (t.location.lat && t.location.lng) {
|
232 |
+
t.marker = new google.maps.Marker({
|
233 |
+
position: new google.maps.LatLng(parseFloat(t.location.lat), parseFloat(t.location.lng)),
|
234 |
+
icon: t.location.icon,
|
235 |
+
url: t.url,
|
236 |
+
draggable: t.location.draggable,
|
237 |
+
animation: google.maps.Animation.DROP,
|
238 |
+
map: e.map
|
239 |
+
}), 1 == e.settings.infowindow_filter_only && (t.marker.visible = !1, t.marker.setVisible(!1)), "edit_location" == e.map_data.page && e.marker_bind(t.marker);
|
240 |
+
var a = [];
|
241 |
+
if ("undefined" != typeof t.categories)
|
242 |
+
for (var n in t.categories) a.push(t.categories[n].name);
|
243 |
+
var i = "";
|
244 |
+
if (e.settings.infowindow_setting) {
|
245 |
+
var s = {
|
246 |
+
"{location_id}": t.id,
|
247 |
+
"{location_title}": t.title,
|
248 |
+
"{location_address}": t.address,
|
249 |
+
"{location_latitude}": t.location.lat,
|
250 |
+
"{location_longitude}": t.location.lng,
|
251 |
+
"{location_city}": t.location.city,
|
252 |
+
"{location_state}": t.location.state,
|
253 |
+
"{location_country}": t.location.country,
|
254 |
+
"{location_postal_code}": t.location.postal_code,
|
255 |
+
"{location_zoom}": t.location.zoom,
|
256 |
+
"{location_icon}": t.location.icon,
|
257 |
+
"{location_categories}": a.join(","),
|
258 |
+
"{location_message}": t.content
|
259 |
+
};
|
260 |
+
if ("undefined" != typeof t.location.extra_fields)
|
261 |
+
for (var r in t.location.extra_fields) s["{" + r + "}"] = t.location.extra_fields[r];
|
262 |
+
var l = e.settings.infowindow_setting.replace(/{[^{}]+}/g, function(e) {
|
263 |
+
return e in s ? s[e] : ""
|
264 |
+
});
|
265 |
+
i = l
|
266 |
+
}
|
267 |
+
"" == i && (i = '<div class="wpgmp_infowindow">' + t.content + "</div>"), t.infowindow = new google.maps.InfoWindow({
|
268 |
+
content: i
|
269 |
+
}), "true" == t.location.infowindow_default_open ? e.openInfoWindow(t) : "true" == e.settings.default_infowindow_open && e.openInfoWindow(t);
|
270 |
+
var p = e.settings.infowindow_open_event;
|
271 |
+
e.event_listener(t.marker, p, function() {
|
272 |
+
e.openInfoWindow(t)
|
273 |
+
}), e.places.push(t)
|
274 |
+
}
|
275 |
+
})
|
276 |
+
},
|
277 |
+
display_markers: function() {
|
278 |
+
var e = this;
|
279 |
+
e.show_places = [], e.categories = [];
|
280 |
+
for (var o = new Object, t = 0; t < e.places.length; t++) e.places[t].marker.setMap(e.map), 1 == e.places[t].marker.visible && e.show_places.push(this.places[t]), "undefined" != typeof e.places[t].categories && $.each(e.places[t].categories, function(e, t) {
|
281 |
+
"undefined" == typeof o[t.name] && (o[t.name] = t)
|
282 |
+
});
|
283 |
+
this.categories = o
|
284 |
+
},
|
285 |
+
get_current_location: function(e, o) {
|
286 |
+
var t = this;
|
287 |
+
"undefined" == typeof t.user_location ? navigator.geolocation.getCurrentPosition(function(o) {
|
288 |
+
t.user_location = new google.maps.LatLng(o.coords.latitude, o.coords.longitude), e && e(t.user_location)
|
289 |
+
}, function(e) {
|
290 |
+
o && o(e)
|
291 |
+
}, {
|
292 |
+
enableHighAccuracy: !0,
|
293 |
+
timeout: 5e3,
|
294 |
+
maximumAge: 0
|
295 |
+
}) : e && e(t.user_location)
|
296 |
+
},
|
297 |
+
openInfoWindow: function(e) {
|
298 |
+
$.each(this.places, function(e, o) {
|
299 |
+
o.infowindow.close()
|
300 |
+
}), "custom_link" == e.location.redirect_url ? "yes" == e.location.open_new_tab ? window.open(e.location.redirect_custom_link, "_blank") : window.open(e.location.redirect_custom_link, "_self") : e.infowindow.open(this.map, e.marker)
|
301 |
+
}
|
302 |
+
}, $.fn.maps = function(e, o) {
|
303 |
+
return this.each(function() {
|
304 |
+
$.data(this, "wpgmp_maps") || $.data(this, "wpgmp_maps", new GoogleMaps(this, e, o))
|
305 |
+
}), this
|
306 |
+
}
|
307 |
+
}(jQuery, window, document);
|
core/abstract.factory.php
ADDED
@@ -0,0 +1,24 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Factory Classes
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @package Core
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! class_exists( 'AbstractFactoryWPGMP' ) ) {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Factory Class Abstract
|
12 |
+
* @author Flipper Code <hello@flippercode.com>
|
13 |
+
* @version 3.0.0
|
14 |
+
* @package Core
|
15 |
+
*/
|
16 |
+
abstract class AbstractFactgoryWPGMP {
|
17 |
+
/**
|
18 |
+
* Abstrct create object
|
19 |
+
* @param string $object Object Type.
|
20 |
+
* @return object Return class object.
|
21 |
+
*/
|
22 |
+
abstract public function create_object($object);
|
23 |
+
}
|
24 |
+
}
|
core/class.controller-factory.php
ADDED
@@ -0,0 +1,42 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Controller Factory Class
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @package Core
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! class_exists( 'FactoryControllerWPGMP' ) ) {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Controller Factory Class
|
12 |
+
* @author Flipper Code <hello@flippercode.com>
|
13 |
+
* @version 3.0.0
|
14 |
+
* @package Core
|
15 |
+
*/
|
16 |
+
class FactoryControllerWPGMP extends AbstractFactgoryWPGMP {
|
17 |
+
/**
|
18 |
+
* FactoryController constructer.
|
19 |
+
*/
|
20 |
+
public function __construct() {
|
21 |
+
}
|
22 |
+
/**
|
23 |
+
* Create controller object by passing object type.
|
24 |
+
* @param string $objectType Object Type.
|
25 |
+
* @return object Return class object.
|
26 |
+
*/
|
27 |
+
public function create_object($objectType) {
|
28 |
+
|
29 |
+
switch ( $objectType ) {
|
30 |
+
|
31 |
+
default : if ( file_exists( WPGMP_CORE_CONTROLLER_CLASS ) ) {
|
32 |
+
require_once( WPGMP_CORE_CONTROLLER_CLASS ); }
|
33 |
+
if ( class_exists( 'WPGMP_Core_Controller' ) ) {
|
34 |
+
return new WPGMP_Core_Controller( $objectType ); }
|
35 |
+
break;
|
36 |
+
|
37 |
+
}
|
38 |
+
|
39 |
+
}
|
40 |
+
|
41 |
+
}
|
42 |
+
}
|
core/class.controller.php
ADDED
@@ -0,0 +1,178 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Controller class
|
4 |
+
* @author Flipper Code<hello@flippercode.com>
|
5 |
+
* @version 3.0.0
|
6 |
+
* @package Core
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! class_exists( 'WPGMP_Core_Controller' ) ) {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Controller class to display views.
|
13 |
+
* @author: Flipper Code<hello@flippercode.com>
|
14 |
+
* @version: 3.0.0
|
15 |
+
* @package: Maps
|
16 |
+
*/
|
17 |
+
class WPGMP_Core_Controller {
|
18 |
+
|
19 |
+
/**
|
20 |
+
* Store object type
|
21 |
+
* @var String
|
22 |
+
*/
|
23 |
+
private $entity;
|
24 |
+
/**
|
25 |
+
* Store entity object return by factory
|
26 |
+
* @var Object
|
27 |
+
*/
|
28 |
+
private $entityObj;
|
29 |
+
/**
|
30 |
+
* Store properties of the $entity object.
|
31 |
+
* @var Array
|
32 |
+
*/
|
33 |
+
private $entityObjProperties;
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Intialize controller properties
|
37 |
+
* @param String $objectType Pass type of the Object.
|
38 |
+
*/
|
39 |
+
function __construct($objectType) {
|
40 |
+
|
41 |
+
$this->entity = $objectType;
|
42 |
+
if ( file_exists( WPGMP_MODEL.$this->entity.'/model.'.$this->entity.'.php' ) ) {
|
43 |
+
$factoryObject = new FactoryModelWPGMP();
|
44 |
+
$this->entityObj = $factoryObject->create_object( $this->entity );
|
45 |
+
if ( is_object( $this->entityObj ) ) {
|
46 |
+
$this->entityObjProperties = get_object_vars( $this->entityObj ); }
|
47 |
+
}
|
48 |
+
|
49 |
+
}
|
50 |
+
/**
|
51 |
+
* Load requested views.
|
52 |
+
* @param String $view View name.
|
53 |
+
* @param array $options View Options.
|
54 |
+
*/
|
55 |
+
public function display($view, $options = array()) {
|
56 |
+
|
57 |
+
$response = $this->do_action();
|
58 |
+
|
59 |
+
switch ( $view ) {
|
60 |
+
default : $view = $view.'.php';
|
61 |
+
}
|
62 |
+
|
63 |
+
if ( ! empty( $view ) ) {
|
64 |
+
return include( WPGMP_MODEL. "{$this->entity}/views/".$view );
|
65 |
+
}
|
66 |
+
}
|
67 |
+
/**
|
68 |
+
* Return entity name.
|
69 |
+
* @return String Type of entity.
|
70 |
+
*/
|
71 |
+
protected function get_entity() {
|
72 |
+
return $this->entity;}
|
73 |
+
/**
|
74 |
+
* Handle form submissions
|
75 |
+
* @param string $action Action name.
|
76 |
+
* @return [type] Success or Failure response.
|
77 |
+
*/
|
78 |
+
protected function do_action( $action = '' ) {
|
79 |
+
|
80 |
+
global $wpdb;
|
81 |
+
|
82 |
+
try {
|
83 |
+
if ( isset( $_POST['operation'] ) and sanitize_text_field( wp_unslash( $_POST['operation'] ) ) != '' ) {
|
84 |
+
$operation = sanitize_text_field( wp_unslash( $_POST['operation'] ) );
|
85 |
+
$response = $this->entityObj->$operation();
|
86 |
+
}
|
87 |
+
} catch (Exception $e) {
|
88 |
+
$response['error'] = $e->getMessage();
|
89 |
+
}
|
90 |
+
|
91 |
+
return $response;
|
92 |
+
}
|
93 |
+
/**
|
94 |
+
* Handle Add & Edit operations.
|
95 |
+
* @return Array Success or Failure response.
|
96 |
+
*/
|
97 |
+
protected function action_add_edit() {
|
98 |
+
|
99 |
+
if ( isset( $_REQUEST['_wpnonce'] ) ) {
|
100 |
+
$nonce = sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ); }
|
101 |
+
|
102 |
+
if ( ! wp_verify_nonce( $nonce, 'wpgmp-nonce' ) ) {
|
103 |
+
|
104 |
+
die( 'Cheating...' );
|
105 |
+
|
106 |
+
}
|
107 |
+
|
108 |
+
$response = array();
|
109 |
+
// Ignore changes in these class variables while setting up class object for insertion/updation.
|
110 |
+
$properties_to_ignore = array( 'validations','table','unique' );
|
111 |
+
|
112 |
+
foreach ( $properties_to_ignore as $classproperty ) {
|
113 |
+
|
114 |
+
if ( array_key_exists( $classproperty,$this->entityObjProperties ) ) {
|
115 |
+
unset( $this->entityObjProperties[ $classproperty ] ); }
|
116 |
+
}
|
117 |
+
|
118 |
+
foreach ( @$this->entityObjProperties as $key => $val ) {
|
119 |
+
|
120 |
+
if ( isset( $_POST[ $key ] ) and ! is_array( $_POST[ $key ] ) ) {
|
121 |
+
$post_key = sanitize_text_field( wp_unslash( $_POST[ $key ] ) );
|
122 |
+
} else {
|
123 |
+
$post_key = array_map( 'esc_attr', (array) wp_unslash( $_POST[ $key ] ) );
|
124 |
+
|
125 |
+
}
|
126 |
+
|
127 |
+
if ( isset( $post_key ) ) {
|
128 |
+
@$this->entityObj->set_val( $key,$post_key );
|
129 |
+
}
|
130 |
+
}
|
131 |
+
|
132 |
+
if ( isset( $_POST['entityID'] ) ) {
|
133 |
+
// Setting value of Id field in case of edit.
|
134 |
+
$this->entityObj->set_val( $this->entity.'_id',intval( wp_unslash( $_POST['entityID'] ) ) ); }
|
135 |
+
|
136 |
+
if ( $this->entityObj->save() > 0 ) {
|
137 |
+
|
138 |
+
$current_obj_name = ucfirst( $this->entity );
|
139 |
+
if ( isset( $_GET['doaction'] ) and 'edit' == $_GET['doaction'] ) {
|
140 |
+
$response['success'] = __( $current_obj_name.' updated successfully.',WPGMP_TEXT_DOMAIN );
|
141 |
+
} else { $response['success'] = __( $current_obj_name.' added successfully. You can manage your '.$current_obj_name.'s <a href="'.admin_url( 'admin.php?page=wpgmp_manage_'.$this->entity ).'">here</a>.', WPGMP_TEXT_DOMAIN ); }
|
142 |
+
|
143 |
+
$_POST = array();
|
144 |
+
}
|
145 |
+
|
146 |
+
return $response;
|
147 |
+
}
|
148 |
+
/**
|
149 |
+
* Handle import locations action.
|
150 |
+
* @return Array Success or Failure Information.
|
151 |
+
*/
|
152 |
+
public function action_import_location() {
|
153 |
+
$response = $this->entityObj->import_location();
|
154 |
+
return $response; }
|
155 |
+
/**
|
156 |
+
* Handle Backup action.
|
157 |
+
* @return Array Success or Failure Information.
|
158 |
+
*/
|
159 |
+
public function action_take_backup() {
|
160 |
+
$response = $this->entityObj->take_backup();
|
161 |
+
return $response; }
|
162 |
+
/**
|
163 |
+
* Handle upload backup action.
|
164 |
+
* @return Array Success or Failure Information.
|
165 |
+
*/
|
166 |
+
public function action_upload_backup() {
|
167 |
+
$response = $this->entityObj->upload_backup();
|
168 |
+
return $response; }
|
169 |
+
/**
|
170 |
+
* Handle import backup action.
|
171 |
+
* @return Array Success or Failure Information.
|
172 |
+
*/
|
173 |
+
public function action_import_backup() {
|
174 |
+
$response = $this->entityObj->import_backup();
|
175 |
+
return $response; }
|
176 |
+
|
177 |
+
}
|
178 |
+
}
|
core/class.database.php
ADDED
@@ -0,0 +1,86 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPGMP_Database class file.
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @package Core
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! class_exists( 'WPGMP_Database' ) ) {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Class : WPGMP_Database
|
12 |
+
* @author Flipper Code <hello@flippercode.com>
|
13 |
+
* @package Maps
|
14 |
+
*/
|
15 |
+
class WPGMP_Database {
|
16 |
+
/**
|
17 |
+
* Connection reference.
|
18 |
+
* @var [type]
|
19 |
+
*/
|
20 |
+
public $connection;
|
21 |
+
/**
|
22 |
+
* Intialize connection string.
|
23 |
+
*/
|
24 |
+
function __construct() {
|
25 |
+
|
26 |
+
global $wpdb;
|
27 |
+
$this->connection = $wpdb;
|
28 |
+
}
|
29 |
+
/**
|
30 |
+
* Connect to database.
|
31 |
+
* @return string Connection reference.
|
32 |
+
*/
|
33 |
+
public static function connect() {
|
34 |
+
|
35 |
+
global $wpdb;
|
36 |
+
return $wpdb;
|
37 |
+
}
|
38 |
+
/**
|
39 |
+
* Read query over connection.
|
40 |
+
* @param string $query SQL Query.
|
41 |
+
* @param string $connection Connection String.
|
42 |
+
* @return object Records cursor.
|
43 |
+
*/
|
44 |
+
public static function reader($query, $connection) {
|
45 |
+
|
46 |
+
$cursor = $connection->get_results( $query );
|
47 |
+
return $cursor;
|
48 |
+
}
|
49 |
+
/**
|
50 |
+
* Execute delete query.
|
51 |
+
* @param string $query SQL Query.
|
52 |
+
* @param string $connection Connection String.
|
53 |
+
* @return boolean True or False.
|
54 |
+
*/
|
55 |
+
public static function non_query($query, $connection) {
|
56 |
+
|
57 |
+
$result = $connection->query( $query );
|
58 |
+
|
59 |
+
if ( 0 == $result or 'FALSE' == $result ) {
|
60 |
+
return false;
|
61 |
+
}
|
62 |
+
|
63 |
+
return $result;
|
64 |
+
}
|
65 |
+
/**
|
66 |
+
* Insert or Update records
|
67 |
+
* @param string $table Table Name.
|
68 |
+
* @param array $data Data array.
|
69 |
+
* @param string $where Condition.
|
70 |
+
* @return int Insert ID or Update Status.
|
71 |
+
*/
|
72 |
+
public static function insert_or_update($table, $data, $where = '') {
|
73 |
+
|
74 |
+
global $wpdb;
|
75 |
+
$wpdb->show_errors();
|
76 |
+
if ( ! is_array( $where ) ) {
|
77 |
+
$wpdb->insert( $table, $data );
|
78 |
+
$result = $wpdb->insert_id;
|
79 |
+
return $result;
|
80 |
+
} else { $result = $wpdb->update( $table, $data, $where );
|
81 |
+
return $result;
|
82 |
+
}
|
83 |
+
|
84 |
+
}
|
85 |
+
}
|
86 |
+
}
|
core/class.map-widget.php
ADDED
@@ -0,0 +1,96 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPGMP_Google_Map_Widget_Class File.
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @package CORE
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! class_exists( 'WPGMP_Google_Map_Widget_Class' ) ) {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Initilize google map widget.
|
12 |
+
* @author Flipper Code <hello@flippercode.com>
|
13 |
+
* @version 3.0.0
|
14 |
+
* @package Maps
|
15 |
+
*/
|
16 |
+
class WPGMP_Google_Map_Widget_Class extends WP_Widget {
|
17 |
+
/**
|
18 |
+
* Initlize parent constructer.
|
19 |
+
*/
|
20 |
+
public function __construct() {
|
21 |
+
|
22 |
+
parent::__construct(
|
23 |
+
'WPGMP_Google_Map_Widget_Class',
|
24 |
+
'WP Google Map Plugin',
|
25 |
+
array( 'description' => __( 'A widget to display google maps' , WPGMP_TEXT_DOMAIN ) )
|
26 |
+
);
|
27 |
+
}
|
28 |
+
/**
|
29 |
+
* Display widget at frontend.
|
30 |
+
* @param array $args Widget Arguments.
|
31 |
+
* @param int $instance Instance of Widget.
|
32 |
+
*/
|
33 |
+
function widget( $args, $instance ) {
|
34 |
+
|
35 |
+
global $wpdb,$map;
|
36 |
+
extract( $args );
|
37 |
+
|
38 |
+
$map_id = apply_filters( 'widget_title', empty( $instance['map_id'] ) ? '' : $instance['map_id'], $instance, $this->id_base );
|
39 |
+
$map_title = apply_filters( 'widget_text', empty( $instance['map_title'] ) ? '' : $instance['map_title'], $instance );
|
40 |
+
echo $before_widget;
|
41 |
+
if ( ! empty( $map_title ) ) {
|
42 |
+
echo $before_title.$map_title.$after_title; }
|
43 |
+
|
44 |
+
if ( ! empty( $map_id ) ) {
|
45 |
+
echo do_shortcode( '[put_wpgm id='.$map_id.']' ); }
|
46 |
+
echo $after_widget;
|
47 |
+
}
|
48 |
+
/**
|
49 |
+
* Update widget options.
|
50 |
+
* @param array $new_instance New Options values.
|
51 |
+
* @param array $old_instance Old Options values.
|
52 |
+
* @return array Modified Options values.
|
53 |
+
*/
|
54 |
+
function update( $new_instance, $old_instance ) {
|
55 |
+
|
56 |
+
$instance = $old_instance;
|
57 |
+
$instance['map_title'] = strip_tags( $new_instance['map_title'] );
|
58 |
+
$instance['map_id'] = strip_tags( $new_instance['map_id'] );
|
59 |
+
return $instance;
|
60 |
+
}
|
61 |
+
/**
|
62 |
+
* Backend Widget Form.
|
63 |
+
* @param array $instance Widget options values.
|
64 |
+
*/
|
65 |
+
function form( $instance ) {
|
66 |
+
|
67 |
+
global $wpdb,$map;
|
68 |
+
$map_records = $wpdb->get_results( 'SELECT * FROM '.TBL_MAP.'' );
|
69 |
+
?>
|
70 |
+
<p>
|
71 |
+
<label for="<?php echo $this->get_field_id( 'map_title' );?>">
|
72 |
+
<?php _e( 'Title:' , WPGMP_TEXT_DOMAIN );?>
|
73 |
+
</label>
|
74 |
+
<input type="text" value="<?php echo $instance['map_title']; ?>" name="<?php echo $this->get_field_name( 'map_title' ); ?>" class="widefat" style="margin-top:6px;">
|
75 |
+
</p>
|
76 |
+
<p>
|
77 |
+
<label for="<?php echo $this->get_field_id( 'map_id' );?>">
|
78 |
+
<?php _e( 'Select Your Map:' , WPGMP_TEXT_DOMAIN );?>
|
79 |
+
</label>
|
80 |
+
<select id="<?php echo $this->get_field_id( 'map_id' ); ?>" name="<?php echo $this->get_field_name( 'map_id' ); ?>" class="widefat" style="margin-top:6px;">
|
81 |
+
<option value=""><?php _e( 'Select map', WPGMP_TEXT_DOMAIN ) ?></option>
|
82 |
+
<?php
|
83 |
+
if ( ! empty( $map_records ) ) {
|
84 |
+
foreach ( $map_records as $key => $map_record ) {
|
85 |
+
?>
|
86 |
+
<option value="<?php echo $map_record->map_id; ?>"<?php selected( $map_record->map_id,$instance['map_id'] ); ?>><?php echo $map_record->map_title; ?></option>
|
87 |
+
<?php
|
88 |
+
}
|
89 |
+
}
|
90 |
+
?>
|
91 |
+
</select>
|
92 |
+
</p>
|
93 |
+
<?php
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
core/class.model-factory.php
ADDED
@@ -0,0 +1,42 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Model Factory Class
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @package Core
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! class_exists( 'FactoryModelWPGMP' ) ) {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* Model Factory Class
|
12 |
+
* @author Flipper Code <hello@flippercode.com>
|
13 |
+
* @version 3.0.0
|
14 |
+
* @package Core
|
15 |
+
*/
|
16 |
+
class FactoryModelWPGMP extends AbstractFactgoryWPGMP {
|
17 |
+
/**
|
18 |
+
* FactoryModel constructer.
|
19 |
+
*/
|
20 |
+
public function __construct() {
|
21 |
+
|
22 |
+
}
|
23 |
+
/**
|
24 |
+
* Create model object by passing object type.
|
25 |
+
* @param string $objectType Object Type.
|
26 |
+
* @return object Return class object.
|
27 |
+
*/
|
28 |
+
public function create_object($objectType) {
|
29 |
+
switch ( $objectType ) {
|
30 |
+
|
31 |
+
default:
|
32 |
+
require_once( WPGMP_MODEL.$objectType.'/model.'.$objectType.'.php' );
|
33 |
+
$object = 'WPGMP_Model_'.$objectType;
|
34 |
+
|
35 |
+
return new $object();
|
36 |
+
break;
|
37 |
+
}
|
38 |
+
|
39 |
+
}
|
40 |
+
|
41 |
+
}
|
42 |
+
}
|
core/class.model.php
ADDED
@@ -0,0 +1,323 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Model base class
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @version 3.0.0
|
6 |
+
* @package Maps
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! class_exists( 'WPGMP_Model_Base' ) ) {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Model base class
|
13 |
+
* @author Flipper Code <hello@flippercode.com>
|
14 |
+
* @version 3.0.0
|
15 |
+
* @package Maps
|
16 |
+
*/
|
17 |
+
class WPGMP_Model_Base {
|
18 |
+
/**
|
19 |
+
* Errors container.
|
20 |
+
* @var array
|
21 |
+
*/
|
22 |
+
protected $errors = array();
|
23 |
+
/**
|
24 |
+
* Success message container.
|
25 |
+
* @var array
|
26 |
+
*/
|
27 |
+
protected $success = array();
|
28 |
+
/**
|
29 |
+
* Hold query to be executed.
|
30 |
+
* @var string
|
31 |
+
*/
|
32 |
+
private $query = '';
|
33 |
+
/**
|
34 |
+
* Table name assoicated to the model class.
|
35 |
+
* @var string
|
36 |
+
*/
|
37 |
+
public $table = '';
|
38 |
+
/**
|
39 |
+
* Unique field name of the model table.
|
40 |
+
* @var [type]
|
41 |
+
*/
|
42 |
+
public $unique;
|
43 |
+
/**
|
44 |
+
* Navigations releated to the model.
|
45 |
+
* @var array
|
46 |
+
*/
|
47 |
+
public $navigation = array( '' );
|
48 |
+
/**
|
49 |
+
* Model class constructer.
|
50 |
+
*/
|
51 |
+
private function __construct() {
|
52 |
+
|
53 |
+
}
|
54 |
+
/**
|
55 |
+
* Assign value to property.
|
56 |
+
* @param string $property Property Name.
|
57 |
+
* @param string $value Property Value.
|
58 |
+
*/
|
59 |
+
function set_val($property, $value) {
|
60 |
+
|
61 |
+
if ( is_array( $value ) ) {
|
62 |
+
$this->{$property} = $value; } elseif ($this->valid( $property,$value ))
|
63 |
+
$this->{$property} = $value;
|
64 |
+
}
|
65 |
+
/**
|
66 |
+
* Validate property value before assign.
|
67 |
+
* @param string $property Property Name.
|
68 |
+
* @param string $value Property Value.
|
69 |
+
* @return boolean True or False.
|
70 |
+
*/
|
71 |
+
function valid($property, $value) {
|
72 |
+
|
73 |
+
if ( property_exists( $this, $property ) ) {
|
74 |
+
|
75 |
+
$validator = new WPGMP_Validator();
|
76 |
+
|
77 |
+
if ( isset( $this->validations[ $property ] ) ) {
|
78 |
+
|
79 |
+
foreach ( $this->validations[ $property ] as $type => $message ) {
|
80 |
+
|
81 |
+
$validator->add( $property,$value,$type,$message );
|
82 |
+
}
|
83 |
+
|
84 |
+
$errors = $validator->validate();
|
85 |
+
|
86 |
+
if ( $errors ) {
|
87 |
+
$this->errors[ $property ] = $errors[ $property ];
|
88 |
+
return false;
|
89 |
+
} else {
|
90 |
+
return true;
|
91 |
+
}
|
92 |
+
} else {
|
93 |
+
return true;
|
94 |
+
}
|
95 |
+
}
|
96 |
+
}
|
97 |
+
/**
|
98 |
+
* Validate all property together.
|
99 |
+
* @param array $data Property name and value pair.
|
100 |
+
* @return boolean True or False.
|
101 |
+
*/
|
102 |
+
function verify($data = array()) {
|
103 |
+
|
104 |
+
if ( isset( $this->validations ) ) {
|
105 |
+
|
106 |
+
foreach ( $this->validations as $field => $checkup ) {
|
107 |
+
$validator = new WPGMP_Validator();
|
108 |
+
foreach ( $checkup as $property => $message ) {
|
109 |
+
$validator->add( $field,$data[ $field ],$property,$message );
|
110 |
+
}
|
111 |
+
$errors = $validator->validate();
|
112 |
+
if ( $errors ) {
|
113 |
+
$this->errors[ $field ] = $errors[ $field ];
|
114 |
+
}
|
115 |
+
}
|
116 |
+
|
117 |
+
if ( $errors ) {
|
118 |
+
return false;
|
119 |
+
} else {
|
120 |
+
return true;
|
121 |
+
}
|
122 |
+
} else {
|
123 |
+
return true;
|
124 |
+
}
|
125 |
+
|
126 |
+
}
|
127 |
+
/**
|
128 |
+
* Retrive records from database based on conditional array.
|
129 |
+
* @param string $table Table name.
|
130 |
+
* @param array $fcv_array Conditional Array.
|
131 |
+
* @param string $sortBy Sort by.
|
132 |
+
* @param boolean $ascending Order by.
|
133 |
+
* @param string $limit Limit.
|
134 |
+
*/
|
135 |
+
function get($table = '', $fcv_array = array(), $sortBy = '', $ascending = true, $limit = '') {
|
136 |
+
|
137 |
+
$connection = WPGMP_Database::connect();
|
138 |
+
|
139 |
+
$sqlLimit = ('' != $limit ? "LIMIT $limit" : '');
|
140 |
+
$this->query = "SELECT * FROM $this->table ";
|
141 |
+
$ruleList = array();
|
142 |
+
$objects = array();
|
143 |
+
|
144 |
+
if ( count( $fcv_array ) > 0 ) {
|
145 |
+
|
146 |
+
$this->query .= ' WHERE ';
|
147 |
+
|
148 |
+
for ( $i = 0, $c = count( $fcv_array ); $i < $c; $i++ ) {
|
149 |
+
|
150 |
+
if ( count( $fcv_array[ $i ] ) == 1 ) {
|
151 |
+
$this->query .= ' '.$fcv_array[ $i ][0].' ';
|
152 |
+
continue;
|
153 |
+
} else {
|
154 |
+
if ( $i > 0 && count( $fcv_array[ $i -1 ] ) != 1 ) {
|
155 |
+
$this->query .= ' AND ';
|
156 |
+
}
|
157 |
+
if ( isset( $this->pog_attribute_type[ $fcv_array[ $i ][0] ]['db_attributes'] ) && 'NUMERIC' != $this->pog_attribute_type[ $fcv_array[ $i ][0] ]['db_attributes'][0] && 'SET' != $this->pog_attribute_type[ $fcv_array[ $i ][0] ]['db_attributes'][0] ) {
|
158 |
+
if ( 1 == $GLOBALS['configuration']['db_encoding'] ) {
|
159 |
+
$value = $this->is_column( $fcv_array[ $i ][2] ) ? 'BASE64_DECODE('.$fcv_array[ $i ][2].')' : "'".$fcv_array[ $i ][2]."'";
|
160 |
+
$this->query .= 'BASE64_DECODE(`'.$fcv_array[ $i ][0].'`) '.$fcv_array[ $i ][1].' '.$value;
|
161 |
+
} else {
|
162 |
+
$value = $this->is_column( $fcv_array[ $i ][2] ) ? $fcv_array[ $i ][2] : "'".$this->escape( $fcv_array[ $i ][2] )."'";
|
163 |
+
$this->query .= '`'.$fcv_array[ $i ][0].'` '.$fcv_array[ $i ][1].' '.$value;
|
164 |
+
}
|
165 |
+
} else {
|
166 |
+
|
167 |
+
$value = $this->is_column( $fcv_array[ $i ][2] ) ? $fcv_array[ $i ][2] : "'".$fcv_array[ $i ][2]."'";
|
168 |
+
if ( 'in' == strtolower( $fcv_array[ $i ][1] ) ) {
|
169 |
+
$value = str_replace( "'",'',$value );
|
170 |
+
$value = '('.$value.')';
|
171 |
+
}
|
172 |
+
$this->query .= '`'.$fcv_array[ $i ][0].'` '.$fcv_array[ $i ][1].' '.$value;
|
173 |
+
}
|
174 |
+
}
|
175 |
+
}
|
176 |
+
}
|
177 |
+
|
178 |
+
if ( ! empty( $sortBy ) ) {
|
179 |
+
if ( isset( $this->pog_attribute_type[ $sortBy ]['db_attributes'] ) && 'NUMERIC' != $this->pog_attribute_type[ $sortBy ]['db_attributes'][0] && 'SET' != $this->pog_attribute_type[ $sortBy ]['db_attributes'][0] ) {
|
180 |
+
if ( 1 == $GLOBALS['configuration']['db_encoding'] ) {
|
181 |
+
$sortBy = "BASE64_DECODE($sortBy) ";
|
182 |
+
} else {
|
183 |
+
$sortBy = "$sortBy ";
|
184 |
+
}
|
185 |
+
} else {
|
186 |
+
$sortBy = "$sortBy ";
|
187 |
+
}
|
188 |
+
} else {
|
189 |
+
$sortBy = $this->unique;
|
190 |
+
}
|
191 |
+
|
192 |
+
$this->query .= ' ORDER BY '.$sortBy.' '.($ascending ? 'ASC' : 'DESC')." $sqlLimit";
|
193 |
+
|
194 |
+
$thisObjectName = get_class( $this );
|
195 |
+
$cursors = WPGMP_Database::reader( $this->query, $connection );
|
196 |
+
|
197 |
+
return $cursors;
|
198 |
+
}
|
199 |
+
/**
|
200 |
+
* Query to be executed.
|
201 |
+
* @param string $query SQL Query.
|
202 |
+
* @return array Records.
|
203 |
+
*/
|
204 |
+
function query($query) {
|
205 |
+
|
206 |
+
$this->query = $query;
|
207 |
+
$connection = WPGMP_Database::connect();
|
208 |
+
$thisObjectName = get_class( $this );
|
209 |
+
$cursors = WPGMP_Database::reader( $this->query, $connection );
|
210 |
+
|
211 |
+
if ( ! empty( $cursors ) ) {
|
212 |
+
|
213 |
+
foreach ( $cursors as $row ) {
|
214 |
+
|
215 |
+
$obj = new $thisObjectName();
|
216 |
+
$obj->fill( $row );
|
217 |
+
$objects[] = $obj;
|
218 |
+
}
|
219 |
+
|
220 |
+
return $objects;
|
221 |
+
}
|
222 |
+
}
|
223 |
+
/**
|
224 |
+
* Validate file extension.
|
225 |
+
* @param string $file_name File Name.
|
226 |
+
* @return boolean True or False.
|
227 |
+
*/
|
228 |
+
public function wpgmp_validate_extension($file_name) {
|
229 |
+
|
230 |
+
$ext_array = array( '.csv', '.xml', '.json', '.xls' );
|
231 |
+
$extension = strtolower( strrchr( $file_name,'.' ) );
|
232 |
+
$ext_count = count( $ext_array );
|
233 |
+
|
234 |
+
if ( ! $file_name ) {
|
235 |
+
return false;
|
236 |
+
} else {
|
237 |
+
if ( ! $ext_array ) {
|
238 |
+
return true;
|
239 |
+
} else {
|
240 |
+
foreach ( $ext_array as $value ) {
|
241 |
+
$first_char = substr( $value,0,1 );
|
242 |
+
if ( '.' <> $first_char ) {
|
243 |
+
$extensions[] = '.'.strtolower( $value );
|
244 |
+
} else {
|
245 |
+
$extensions[] = strtolower( $value );
|
246 |
+
}
|
247 |
+
}
|
248 |
+
|
249 |
+
foreach ( $extensions as $value ) {
|
250 |
+
if ( $value == $extension ) {
|
251 |
+
$valid_extension = 'TRUE';
|
252 |
+
}
|
253 |
+
}
|
254 |
+
|
255 |
+
if ( $valid_extension ) {
|
256 |
+
return true;
|
257 |
+
} else {
|
258 |
+
return false;
|
259 |
+
}
|
260 |
+
}
|
261 |
+
}
|
262 |
+
}
|
263 |
+
/**
|
264 |
+
* Throw errors in try block.
|
265 |
+
* @throws Exception User custom Errors.
|
266 |
+
*/
|
267 |
+
protected function throw_errors() {
|
268 |
+
|
269 |
+
if ( isset( $this->errors ) and is_array( $this->errors ) ) {
|
270 |
+
|
271 |
+
throw new Exception( implode( '<br>',$this->errors ) );
|
272 |
+
|
273 |
+
}
|
274 |
+
}
|
275 |
+
|
276 |
+
/**
|
277 |
+
* This function will try to encode $text to base64, except when $text is a number. This allows us to Escape all data before they're inserted in the database, regardless of attribute type.
|
278 |
+
* @param string $text String.
|
279 |
+
* @return string encoded to base64.
|
280 |
+
*/
|
281 |
+
public function escape($text) {
|
282 |
+
|
283 |
+
return @mysql_real_escape_string( $text );
|
284 |
+
}
|
285 |
+
/**
|
286 |
+
* Check if column name.
|
287 |
+
* @param string $value Column name.
|
288 |
+
* @return boolean True or False.
|
289 |
+
*/
|
290 |
+
public static function is_column($value) {
|
291 |
+
|
292 |
+
if ( strlen( $value ) > 2 ) {
|
293 |
+
if ( substr( $value, 0, 1 ) == '`' && substr( $value, strlen( $value ) - 1, 1 ) == '`' ) {
|
294 |
+
return true;
|
295 |
+
}
|
296 |
+
return false;
|
297 |
+
}
|
298 |
+
|
299 |
+
return false;
|
300 |
+
}
|
301 |
+
/**
|
302 |
+
* Convert XML to array.
|
303 |
+
* @param string $xml XML nodes.
|
304 |
+
* @return array Array nodes.
|
305 |
+
*/
|
306 |
+
public function wpgmp_xml_2array($xml) {
|
307 |
+
|
308 |
+
$arr = array();
|
309 |
+
|
310 |
+
foreach ( $xml->children() as $r ) {
|
311 |
+
$t = array();
|
312 |
+
if ( count( $r->children() ) == 0 ) {
|
313 |
+
$arr[ $r->getName() ] = strval( $r );
|
314 |
+
} else {
|
315 |
+
$arr[ $r->getName() ][] = $this->wpgmp_xml_2array( $r );
|
316 |
+
}
|
317 |
+
}
|
318 |
+
|
319 |
+
return $arr;
|
320 |
+
}
|
321 |
+
|
322 |
+
}
|
323 |
+
}
|
core/class.tabular.php
ADDED
@@ -0,0 +1,743 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WP_List_Table_Helper Class File.
|
4 |
+
* @package Core
|
5 |
+
* @author Flipper Code <hello@flippercode.com>
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! class_exists( 'WP_List_Table' ) ) {
|
9 |
+
require_once( ABSPATH . 'wp-admin/includes/class-wp-list-table.php' ); }
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Extend WP_LIST_TABLE to simplify table listing.
|
13 |
+
* @package Core
|
14 |
+
* @author Flipper Code <hello@flippercode.com>
|
15 |
+
*/
|
16 |
+
class WP_List_Table_Helper extends WP_List_Table {
|
17 |
+
|
18 |
+
/**
|
19 |
+
* Table name.
|
20 |
+
* @var string
|
21 |
+
*/
|
22 |
+
var $table;
|
23 |
+
/**
|
24 |
+
* Custom SQL Query to fetch records.
|
25 |
+
* @var string
|
26 |
+
*/
|
27 |
+
var $sql;
|
28 |
+
/**
|
29 |
+
* Action over records.
|
30 |
+
* @var array
|
31 |
+
*/
|
32 |
+
var $actions = array( 'edit','delete' );
|
33 |
+
/**
|
34 |
+
* Timestamp Column in table.
|
35 |
+
* @var string
|
36 |
+
*/
|
37 |
+
var $currenttimestamp_field;
|
38 |
+
/**
|
39 |
+
* Text Domain for multilingual.
|
40 |
+
* @var string
|
41 |
+
*/
|
42 |
+
var $textdomain;
|
43 |
+
/**
|
44 |
+
* Singular label.
|
45 |
+
* @var string
|
46 |
+
*/
|
47 |
+
var $singular_label;
|
48 |
+
/**
|
49 |
+
* Plural lable.
|
50 |
+
* @var string
|
51 |
+
*/
|
52 |
+
var $plural_label;
|
53 |
+
/**
|
54 |
+
* Show add navigation at the top.
|
55 |
+
* @var boolean
|
56 |
+
*/
|
57 |
+
var $show_add_button = true;
|
58 |
+
/**
|
59 |
+
* Ajax based listing
|
60 |
+
* @var boolean
|
61 |
+
*/
|
62 |
+
var $ajax = false;
|
63 |
+
/**
|
64 |
+
* Columns to be displayed.
|
65 |
+
* @var array
|
66 |
+
*/
|
67 |
+
var $columns;
|
68 |
+
/**
|
69 |
+
* Columns to be sortable.
|
70 |
+
* @var array
|
71 |
+
*/
|
72 |
+
var $sortable;
|
73 |
+
/**
|
74 |
+
* Fields to be hide.
|
75 |
+
* @var array
|
76 |
+
*/
|
77 |
+
var $hidden;
|
78 |
+
/**
|
79 |
+
* Records per page.
|
80 |
+
* @var integer
|
81 |
+
*/
|
82 |
+
var $per_page = 10;
|
83 |
+
/**
|
84 |
+
* Slug for the manage page.
|
85 |
+
* @var string
|
86 |
+
*/
|
87 |
+
var $admin_listing_page_name;
|
88 |
+
/**
|
89 |
+
* Slug for the add or edit page.
|
90 |
+
* @var string
|
91 |
+
*/
|
92 |
+
var $admin_add_page_name;
|
93 |
+
/**
|
94 |
+
* Response
|
95 |
+
* @var string
|
96 |
+
*/
|
97 |
+
var $response;
|
98 |
+
/**
|
99 |
+
* Display string at the top of the table.
|
100 |
+
* @var string
|
101 |
+
*/
|
102 |
+
var $toptext;
|
103 |
+
/**
|
104 |
+
* Display string at the bottom of the table.
|
105 |
+
* @var [type]
|
106 |
+
*/
|
107 |
+
var $bottomtext;
|
108 |
+
/**
|
109 |
+
* Primary column of the table.
|
110 |
+
* @var string
|
111 |
+
*/
|
112 |
+
var $primary_col;
|
113 |
+
/**
|
114 |
+
* Column where to display actions navigation.
|
115 |
+
* @var string
|
116 |
+
*/
|
117 |
+
var $col_showing_links;
|
118 |
+
/**
|
119 |
+
* Call external function when actions executed.
|
120 |
+
* @var array
|
121 |
+
*/
|
122 |
+
var $extra_processing_on_actions;
|
123 |
+
/**
|
124 |
+
* Current action name.
|
125 |
+
* @var string
|
126 |
+
*/
|
127 |
+
var $now_action;
|
128 |
+
/**
|
129 |
+
* Table prefix.
|
130 |
+
* @var string
|
131 |
+
*/
|
132 |
+
var $prefix;
|
133 |
+
/**
|
134 |
+
* Current page's records.
|
135 |
+
* @var array
|
136 |
+
*/
|
137 |
+
var $found_data;
|
138 |
+
/**
|
139 |
+
* Total # of records.
|
140 |
+
* @var int
|
141 |
+
*/
|
142 |
+
var $items;
|
143 |
+
/**
|
144 |
+
* All Records.
|
145 |
+
* @var array
|
146 |
+
*/
|
147 |
+
var $data;
|
148 |
+
/**
|
149 |
+
* Columns to be excluded in search.
|
150 |
+
* @var array
|
151 |
+
*/
|
152 |
+
var $searchExclude;
|
153 |
+
/**
|
154 |
+
* Actions executed in bulk action.
|
155 |
+
* @var array
|
156 |
+
*/
|
157 |
+
var $bulk_actions;
|
158 |
+
|
159 |
+
/**
|
160 |
+
* Constructer method
|
161 |
+
* @param array $tableinfo Listing configurations.
|
162 |
+
*/
|
163 |
+
public function __construct($tableinfo) {
|
164 |
+
|
165 |
+
global $wpdb;
|
166 |
+
$this->prefix = $wpdb->prefix;
|
167 |
+
|
168 |
+
foreach ( $tableinfo as $key => $value ) { // Initialise constuctor based provided values to class variables.
|
169 |
+
$this->$key = $tableinfo[ $key ];
|
170 |
+
}
|
171 |
+
|
172 |
+
parent::__construct( array(
|
173 |
+
'singular' => __( $this->singular_label, $this->textdomain ),
|
174 |
+
'plural' => __( $this->plural_label, $this->textdomain ),
|
175 |
+
'ajax' => $this->ajax,
|
176 |
+
) );
|
177 |
+
|
178 |
+
$this->init_listing();
|
179 |
+
|
180 |
+
}
|
181 |
+
/**
|
182 |
+
* Initialize table listing.
|
183 |
+
*/
|
184 |
+
public function init_listing() {
|
185 |
+
|
186 |
+
if ( ! empty( $this->currenttimestamp_field ) ) { // Load extra resources if we want to show time based filters in listing table.
|
187 |
+
|
188 |
+
wp_enqueue_script( 'jquery-ui-datepicker' );
|
189 |
+
wp_enqueue_style( 'jquery-style', 'http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css' );
|
190 |
+
|
191 |
+
}
|
192 |
+
$this->prepare_items();
|
193 |
+
|
194 |
+
if ( ! empty( $_GET['doaction'] ) and ! empty( $_GET[ $this->primary_col ] ) ) {
|
195 |
+
$this->now_action = $function_name = sanitize_text_field( wp_unslash( $_GET['doaction'] ) );
|
196 |
+
if ( false != strpos( sanitize_text_field( wp_unslash( $_GET['doaction'] ) ), '-' ) ) {
|
197 |
+
$function_name = str_replace( '-','',$function_name ); }
|
198 |
+
$this->$function_name();
|
199 |
+
|
200 |
+
} else {
|
201 |
+
$this->listing();
|
202 |
+
}
|
203 |
+
|
204 |
+
}
|
205 |
+
/**
|
206 |
+
* Edit action.
|
207 |
+
*/
|
208 |
+
public function edit() {
|
209 |
+
|
210 |
+
}
|
211 |
+
/**
|
212 |
+
* Delete action.
|
213 |
+
*/
|
214 |
+
public function delete() {
|
215 |
+
|
216 |
+
global $wpdb;
|
217 |
+
$id = intval( $_GET[ $this->primary_col ] );
|
218 |
+
$this->do_extra_processing_on_actions( $id );
|
219 |
+
$query = "DELETE FROM {$this->table} WHERE {$this->primary_col} = ".$_GET[ $this->primary_col ];
|
220 |
+
$del = $wpdb->query( $query );
|
221 |
+
$this->prepare_items();
|
222 |
+
$this->response['success'] = __( 'Selected '.ucwords( $this->singular_label ).' Deleted Successfully.', $this->textdomain );
|
223 |
+
$this->listing();
|
224 |
+
|
225 |
+
}
|
226 |
+
/**
|
227 |
+
* Late Static Binding for calling the methods in child class.
|
228 |
+
* @param int $id Record ID.
|
229 |
+
*/
|
230 |
+
public function do_extra_processing_on_actions($id) {
|
231 |
+
|
232 |
+
if ( ! empty( $this->extra_processing_on_actions ) ) {
|
233 |
+
|
234 |
+
if ( in_array( $this->now_action,$this->extra_processing_on_actions ) ) {
|
235 |
+
|
236 |
+
$function_to_call = 'process_'.$this->now_action;
|
237 |
+
//static::$function_to_call($id); // Late Static Binding.
|
238 |
+
|
239 |
+
}
|
240 |
+
}
|
241 |
+
}
|
242 |
+
/**
|
243 |
+
* Display records listing.
|
244 |
+
*/
|
245 |
+
public function listing() {
|
246 |
+
?>
|
247 |
+
|
248 |
+
<div class="container">
|
249 |
+
<div class="row">
|
250 |
+
<div class="col-md-12">
|
251 |
+
<div class="wpgmp_menu_title">
|
252 |
+
<h4 class="alert alert-info"><?php _e( 'Manage '.ucwords( $this->plural_label ), $this->textdomain );?></h4>
|
253 |
+
</div>
|
254 |
+
<div class="wpgmp-overview">
|
255 |
+
<?php $this->show_notification( $this->response ); ?>
|
256 |
+
<fieldset>
|
257 |
+
<form method="post" action="<?php echo admin_url( 'admin.php?page='.$this->admin_listing_page_name ); ?>">
|
258 |
+
<?php
|
259 |
+
$this->search_box( 'search', 'search_id' );
|
260 |
+
$this->display();
|
261 |
+
?>
|
262 |
+
<input type="hidden" name="row_id" value="" />
|
263 |
+
<input type="hidden" name="operation" value="" />
|
264 |
+
<?php wp_nonce_field( 'wpgmp-nonce','_wpnonce',true,true ); ?>
|
265 |
+
</form>
|
266 |
+
</fieldset>
|
267 |
+
</div>
|
268 |
+
</br>
|
269 |
+
</div>
|
270 |
+
</div>
|
271 |
+
</div>
|
272 |
+
<?php }
|
273 |
+
/**
|
274 |
+
* Reset primary column ID.
|
275 |
+
*/
|
276 |
+
public function unset_id_field() {
|
277 |
+
|
278 |
+
if ( array_key_exists( $this->primary_col, $this->columns ) ) { unset( $this->columns[ $this->primary_col ] ); }
|
279 |
+
}
|
280 |
+
/**
|
281 |
+
* Get sortable columns.
|
282 |
+
* @return array Sortable columns names.
|
283 |
+
*/
|
284 |
+
function get_sortable_columns() {
|
285 |
+
|
286 |
+
if ( empty( $this->sortable ) ) {
|
287 |
+
|
288 |
+
$sortable_columns[ $this->primary_col ] = array( $this->primary_col,false );
|
289 |
+
} else {
|
290 |
+
|
291 |
+
foreach ( $this->sortable as $sortable ) {
|
292 |
+
$sortable_columns[ $sortable ] = array( $sortable,false );
|
293 |
+
}
|
294 |
+
}
|
295 |
+
return $sortable_columns;
|
296 |
+
}
|
297 |
+
/**
|
298 |
+
* Get columns to be displayed.
|
299 |
+
* @return array Columns names.
|
300 |
+
*/
|
301 |
+
function get_columns() {
|
302 |
+
|
303 |
+
$columns = array( 'cb' => '<input type="checkbox" />' );
|
304 |
+
|
305 |
+
if ( ! empty( $this->sql ) ) {
|
306 |
+
global $wpdb;
|
307 |
+
$results = $wpdb->get_results( $this->sql ) or die( mysql_error() );
|
308 |
+
foreach ( $results[0] as $column_name => $column_value ) { // Get all columns by provided returned by sql query(Preparing Columns Array).
|
309 |
+
$this->columns[ $column_name ] = $column_name;
|
310 |
+
}
|
311 |
+
} else {
|
312 |
+
if ( empty( $this->columns ) ) {
|
313 |
+
global $wpdb;
|
314 |
+
foreach ( $wpdb->get_col( 'DESC ' . $this->table, 0 ) as $column_name ) { // Query all column name usind DESC (Preparing Columns Array).
|
315 |
+
$this->columns[ $column_name ] = $column_name;
|
316 |
+
}
|
317 |
+
}
|
318 |
+
}
|
319 |
+
|
320 |
+
$this->unset_id_field(); // Preventing Id field to showup in Listing.
|
321 |
+
|
322 |
+
// This is how we initialise all columns dynamically instead of statically (normally we write each column name here) in get_columns function definition :).
|
323 |
+
foreach ( $this->columns as $dbcolname => $collabel ) {
|
324 |
+
$columns[ $dbcolname ] = __( $collabel, $this->textdomain );
|
325 |
+
}
|
326 |
+
|
327 |
+
return $columns;
|
328 |
+
}
|
329 |
+
/**
|
330 |
+
* Column where to display actions.
|
331 |
+
* @param array $item Record.
|
332 |
+
* @param string $column_name Column name.
|
333 |
+
* @return string Column output.
|
334 |
+
*/
|
335 |
+
function column_default( $item, $column_name ) {
|
336 |
+
|
337 |
+
// Return Default values from db except current timestamp field. If currenttimestamp_field is encountered return formatted value.
|
338 |
+
if ( ! empty( $this->currenttimestamp_field ) and $column_name == $this->currenttimestamp_field ) {
|
339 |
+
$return = date( 'F j, Y',strtotime( $item->$column_name ) );
|
340 |
+
} else if ( $column_name == $this->col_showing_links ) {
|
341 |
+
|
342 |
+
$actions = array();
|
343 |
+
foreach ( $this->actions as $action ) {
|
344 |
+
$action_slug = sanitize_title( $action );
|
345 |
+
$action_label = ucwords( $action );
|
346 |
+
if ( 'delete' == $action_slug ) {
|
347 |
+
$actions[ $action_slug ] = sprintf( '<a href="?page=%s&doaction=%s&'.$this->primary_col.'=%s">'.$action_label.'</a>',$this->admin_listing_page_name,$action_slug,$item->{$this->primary_col} ); } else if ( 'edit' == $action_slug ) {
|
348 |
+
$actions[ $action_slug ] = sprintf( '<a href="?page=%s&doaction=%s&'.$this->primary_col.'=%s">'.$action_label.'</a>',$this->admin_add_page_name,$action_slug,$item->{$this->primary_col} );
|
349 |
+
} else { $actions[ $action_slug ] = sprintf( '<a href="?page=%s&doaction=%s&'.$this->primary_col.'=%s">'.$action_label.'</a>',$this->admin_listing_page_name,$action_slug,$item->{$this->primary_col} ); }
|
350 |
+
}
|
351 |
+
return sprintf( '%1$s %2$s', $item->{$this->col_showing_links}, $this->row_actions( $actions ) );
|
352 |
+
|
353 |
+
} else {
|
354 |
+
$return = $item->$column_name;
|
355 |
+
}
|
356 |
+
return $return;
|
357 |
+
}
|
358 |
+
|
359 |
+
/**
|
360 |
+
* Checkbox for each record.
|
361 |
+
* @param array $item Record
|
362 |
+
* @return string Checkbox Element.
|
363 |
+
*/
|
364 |
+
function column_cb($item) {
|
365 |
+
return sprintf( '<input type="checkbox" name="id[]" value="%s" />', $item->{$this->primary_col} ); }
|
366 |
+
/**
|
367 |
+
* Sorting Order
|
368 |
+
* @param string $a First element.
|
369 |
+
* @param string $b Second element.
|
370 |
+
* @return string Winner element.
|
371 |
+
*/
|
372 |
+
function usort_reorder( $a, $b ) {
|
373 |
+
|
374 |
+
$orderby = ( ! empty( $_GET['orderby'] ) ) ? $_GET['orderby'] : '';
|
375 |
+
$order = ( ! empty( $_GET['order'] ) ) ? $_GET['order'] : 'asc';
|
376 |
+
$result = strcmp( $a[ $orderby ], $b[ $orderby ] );
|
377 |
+
return ( 'asc' == $order ) ? $result : -$result;
|
378 |
+
}
|
379 |
+
/**
|
380 |
+
* Get bulk actions.
|
381 |
+
* @return array Bulk action listing.
|
382 |
+
*/
|
383 |
+
function get_bulk_actions() {
|
384 |
+
|
385 |
+
$actions = array(
|
386 |
+
'delete' => 'Delete',
|
387 |
+
);
|
388 |
+
$actions = array_merge( $actions, (array) $this->bulk_actions );
|
389 |
+
return $actions;
|
390 |
+
}
|
391 |
+
/**
|
392 |
+
* Get records from ids.
|
393 |
+
* @return array Records ID.
|
394 |
+
*/
|
395 |
+
function get_user_selected_records() {
|
396 |
+
|
397 |
+
$ids = isset( $_REQUEST['id'] ) ? $_REQUEST['id'] : array();
|
398 |
+
if ( is_array( $ids ) ) { $ids = implode( ',', $ids ); }
|
399 |
+
if ( ! empty( $ids ) ) {
|
400 |
+
return $ids; }
|
401 |
+
}
|
402 |
+
/**
|
403 |
+
* Process bulk actions.
|
404 |
+
*/
|
405 |
+
function process_bulk_action() {
|
406 |
+
|
407 |
+
global $wpdb;
|
408 |
+
$this->now_action = $this->current_action();
|
409 |
+
$ids = $this->get_user_selected_records();
|
410 |
+
if ( 'delete' === $this->current_action() and ! empty( $ids ) ) {
|
411 |
+
|
412 |
+
if( isset( $_REQUEST['id'] ) ) {
|
413 |
+
foreach ( ( $_REQUEST['id'] ) as $id ) {
|
414 |
+
$this->do_extra_processing_on_actions( $id ); // Also Perform additional functionality when records are deleted.
|
415 |
+
}
|
416 |
+
}
|
417 |
+
|
418 |
+
|
419 |
+
$query = "DELETE FROM {$this->table} WHERE {$this->primary_col} IN($ids)";
|
420 |
+
$del = $wpdb->query( $query );
|
421 |
+
$this->response['success'] = (strpos( $ids, ',' ) !== false) ? __( "Selected {$this->plural_label} Deleted Successfully.", $this->textdomain ) : __( 'Selected '.ucwords( ucwords( $this->singular_label ) ).' Deleted Successfully.', $this->textdomain );
|
422 |
+
|
423 |
+
} else if ( 'export_csv' === $this->current_action() ) {
|
424 |
+
ob_clean();
|
425 |
+
global $wpdb;
|
426 |
+
$ids = $this->get_user_selected_records();
|
427 |
+
$ids = ( ! empty( $ids )) ? " WHERE {$this->primary_col} IN($ids) " : '';
|
428 |
+
$columns = array_keys( $this->columns );
|
429 |
+
$columns = (count( $columns ) == 0) ? $columns[0] : implode( ',',$columns );
|
430 |
+
$query = (empty( $this->sql )) ? "SELECT $columns FROM ".$this->table.$ids." order by {$this->primary_col} desc" : $this->sql;
|
431 |
+
$data = $wpdb->get_results( $query,ARRAY_A );
|
432 |
+
$tablerecords = array();
|
433 |
+
if ( ! empty( $this->sql ) ) {
|
434 |
+
$col_key_value = array();
|
435 |
+
foreach ( $data[0] as $key => $val ) { // Make csv's first row column heading according to columns selected in custom sql.
|
436 |
+
$col_key_value[ $key ] = $key;
|
437 |
+
}
|
438 |
+
$tablerecords[] = $col_key_value;
|
439 |
+
} else {
|
440 |
+
$tablerecords[] = $this->columns; // Make csv's first row column heading according automatic detected columns.
|
441 |
+
}
|
442 |
+
foreach ( $data as $entry ) {
|
443 |
+
if ( array_key_exists( $this->primary_col,$entry ) ) {
|
444 |
+
unset( $entry[ $this->primary_col ] ); }
|
445 |
+
$tablerecords[] = $entry;
|
446 |
+
|
447 |
+
}
|
448 |
+
header( 'Content-Type: application/csv' );
|
449 |
+
header( "Content-Disposition: attachment; filename=\"{$this->plural_label}-Records.csv\";" );
|
450 |
+
header( 'Pragma: no-cache' );
|
451 |
+
$fp = fopen( 'php://output', 'w' );
|
452 |
+
foreach ( $tablerecords as $record ) {
|
453 |
+
fputcsv( $fp, $record );
|
454 |
+
}
|
455 |
+
fclose( $fp );
|
456 |
+
exit;
|
457 |
+
|
458 |
+
}
|
459 |
+
// $this->do_extra_processing_on_actions();
|
460 |
+
}
|
461 |
+
/**
|
462 |
+
* Show notification message based on response.
|
463 |
+
* @param array $response Response.
|
464 |
+
*/
|
465 |
+
public function show_notification($response) {
|
466 |
+
|
467 |
+
if ( ! empty( $response['error'] ) ) {
|
468 |
+
$this->show_message( $response['error'],true ); } else if ( ! empty( $response['success'] ) ) {
|
469 |
+
$this->show_message( $response['success'] ); }
|
470 |
+
|
471 |
+
}
|
472 |
+
/**
|
473 |
+
* Message html element.
|
474 |
+
* @param string $message Message.
|
475 |
+
* @param boolean $errormsg Error or not.
|
476 |
+
* @return string Message element.
|
477 |
+
*/
|
478 |
+
public function show_message($message, $errormsg = false) {
|
479 |
+
|
480 |
+
if ( empty( $message ) ) {
|
481 |
+
return; }
|
482 |
+
if ( $errormsg ) {
|
483 |
+
echo "<div class='alert alert-info'>{$message}</div>";
|
484 |
+
} else { echo "<div class='alert alert-success'>{$message}</div>"; }
|
485 |
+
|
486 |
+
}
|
487 |
+
/**
|
488 |
+
* Prepare records before print.
|
489 |
+
*/
|
490 |
+
function prepare_items() {
|
491 |
+
|
492 |
+
global $wpdb;
|
493 |
+
$columns = $this->get_columns();
|
494 |
+
$hidden = array();
|
495 |
+
$sortable = $this->get_sortable_columns();
|
496 |
+
$this->_column_headers = array( $columns, $hidden, $sortable );
|
497 |
+
$this->process_bulk_action();
|
498 |
+
// Check whether query must be build through table name or an sql is provided by developer.
|
499 |
+
$query = (empty( $this->sql )) ? 'SELECT * FROM '.$this->table : $this->sql;
|
500 |
+
if ( $this->admin_listing_page_name == @$_GET['page'] && '' != @$_REQUEST['s'] ) {
|
501 |
+
|
502 |
+
$s = @$_REQUEST['s'];
|
503 |
+
$first_column;
|
504 |
+
$remaining_columns = array();
|
505 |
+
$basic_search_query = '';
|
506 |
+
foreach ( $this->columns as $column_name => $columnlabel ) {
|
507 |
+
|
508 |
+
if ( "{$this->primary_col}" == $column_name ) {
|
509 |
+
continue;
|
510 |
+
} else {
|
511 |
+
if ( empty( $first_column ) ) {
|
512 |
+
$first_column = $column_name;
|
513 |
+
$basic_search_query = " WHERE {$column_name} LIKE '%".$s."%'";
|
514 |
+
} else {
|
515 |
+
$remaining_columns[] = $column_name;
|
516 |
+
if ( ! @in_array( $column_name,$this->searchExclude ) ) {
|
517 |
+
$basic_search_query .= " or {$column_name} LIKE '%".$s."%'"; }
|
518 |
+
}
|
519 |
+
}
|
520 |
+
}
|
521 |
+
|
522 |
+
$query_to_run = $query.$basic_search_query;
|
523 |
+
$query_to_run .= " order by {$this->primary_col} desc";
|
524 |
+
|
525 |
+
} else if ( ! empty( $_GET['orderby'] ) and ! empty( $_GET['order'] ) ) {
|
526 |
+
$orderby = ( ! empty( $_GET['orderby'] ) ) ? $_GET['orderby'] : $this->primary_col;
|
527 |
+
$order = ( ! empty( $_GET['order'] ) ) ? $_GET['order'] : 'asc';
|
528 |
+
$query_to_run = $query;
|
529 |
+
$query_to_run .= " order by {$orderby} {$order}";
|
530 |
+
} else {
|
531 |
+
$query_to_run = $query;
|
532 |
+
if ( ! empty( $this->currenttimestamp_field ) ) {
|
533 |
+
$query_to_run = $this->filter_query( $query_to_run ); }
|
534 |
+
$query_to_run .= " order by {$this->primary_col} desc";
|
535 |
+
}
|
536 |
+
// echo $query_to_run;
|
537 |
+
$this->data = $wpdb->get_results( $query_to_run );
|
538 |
+
$current_page = $this->get_pagenum();
|
539 |
+
$total_items = count( $this->data );
|
540 |
+
$this->found_data = @array_slice( $this->data,( ( $current_page -1 ) * $this->per_page ), $this->per_page );
|
541 |
+
$this->set_pagination_args( array(
|
542 |
+
'total_items' => $total_items,
|
543 |
+
'per_page' => $this->per_page,
|
544 |
+
) );
|
545 |
+
$this->items = $this->found_data;
|
546 |
+
|
547 |
+
}
|
548 |
+
/**
|
549 |
+
* Extra Filter selection box at the top of table.
|
550 |
+
* @param string $which Top or Bottom.
|
551 |
+
*/
|
552 |
+
function extra_tablenav( $which ) {
|
553 |
+
$text = ( 'top' == $which ) ? $this->toptext : $this->bottomtext;
|
554 |
+
echo $text;
|
555 |
+
if ( 'top' != $which ) {
|
556 |
+
return; }
|
557 |
+
|
558 |
+
if ( ! empty( $this->currenttimestamp_field ) ) {
|
559 |
+
$filter_by_post = sanitize_text_field( wp_unslash( $_POST['filter_by'] ) );
|
560 |
+
?>
|
561 |
+
<div class="alignleft actions">
|
562 |
+
<label>Filter By: </label>
|
563 |
+
<select name="filter_by" style="float:none;">
|
564 |
+
<option value="">Select Filter Criteria</option>
|
565 |
+
<option value="today" <?php selected( $filter_by_post, 'today' ); ?>>Today</option>
|
566 |
+
<option value="yesterday" <?php selected( $filter_by_post, 'yesterday' ); ?>>Yesterday</option>
|
567 |
+
<option value="this_week" <?php selected( $filter_by_post, 'this_week' ); ?>>This Week</option>
|
568 |
+
<option value="this_month" <?php selected( $filter_by_post, 'this_month' ); ?>>This Month</option>
|
569 |
+
<option value="last_3_months" <?php selected( $filter_by_post, 'last_3_months' ); ?>>Last 3 Months</option>
|
570 |
+
<option value="last_6_months" <?php selected( $filter_by_post, 'last_6_months' ); ?>>Last 6 Months</option>
|
571 |
+
<option value="last_year" <?php selected( $filter_by_post, 'last_year' ); ?>>Last Year</option>
|
572 |
+
<option value="custom" <?php selected( $filter_by_post, 'custom' ); ?>>Custom</option>
|
573 |
+
</select>
|
574 |
+
<?php
|
575 |
+
if ( $_POST['from_date'] || $_POST['to_date'] ) {
|
576 |
+
$display = 'inline';
|
577 |
+
} else { $display = 'none'; }
|
578 |
+
?>
|
579 |
+
<div id="custom_filter" style="display:<?php echo $display; ?>;"> <label>From</label>
|
580 |
+
<input type="text" name="from_date" id="from_date" value="<?php echo sanitize_text_field( $_POST['from_date'] ); ?>">
|
581 |
+
<label>To</label>
|
582 |
+
<input type="text" name="to_date" id="to_date" value="<?php echo sanitize_text_field( $_POST['to_date'] ); ?>">
|
583 |
+
</div>
|
584 |
+
|
585 |
+
<?php submit_button( __( 'Filter' ), 'button', 'filter_action', false, array( 'id' => 'post-query-submit' ) ); ?>
|
586 |
+
</div>
|
587 |
+
<?php
|
588 |
+
|
589 |
+
}
|
590 |
+
}
|
591 |
+
/**
|
592 |
+
* display Pagination
|
593 |
+
* @param string $which Top or Bottom.
|
594 |
+
*/
|
595 |
+
protected function pagination( $which ) {
|
596 |
+
|
597 |
+
if ( empty( $this->_pagination_args ) ) {
|
598 |
+
return;
|
599 |
+
}
|
600 |
+
$total_items = $this->_pagination_args['total_items'];
|
601 |
+
$total_pages = $this->_pagination_args['total_pages'];
|
602 |
+
$infinite_scroll = false;
|
603 |
+
if ( isset( $this->_pagination_args['infinite_scroll'] ) ) {
|
604 |
+
$infinite_scroll = $this->_pagination_args['infinite_scroll'];
|
605 |
+
}
|
606 |
+
|
607 |
+
$output = '<span class="displaying-num">' . sprintf( _n( '1 item', '%s items', $total_items ), number_format_i18n( $total_items ) ) . '</span>';
|
608 |
+
|
609 |
+
$current = $this->get_pagenum();
|
610 |
+
|
611 |
+
$current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
|
612 |
+
|
613 |
+
$current_url = remove_query_arg( array( 'hotkeys_highlight_last', 'hotkeys_highlight_first' ), $current_url );
|
614 |
+
|
615 |
+
$page_links = array();
|
616 |
+
|
617 |
+
$disable_first = $disable_last = '';
|
618 |
+
if ( 1 == $current ) {
|
619 |
+
$disable_first = ' disabled';
|
620 |
+
}
|
621 |
+
if ( $current == $total_pages ) {
|
622 |
+
$disable_last = ' disabled';
|
623 |
+
}
|
624 |
+
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
625 |
+
'first-page' . $disable_first,
|
626 |
+
esc_attr__( 'Go to the first page' ),
|
627 |
+
esc_url( remove_query_arg( 'paged', $current_url ) ),
|
628 |
+
'«'
|
629 |
+
);
|
630 |
+
|
631 |
+
if ( isset( $_REQUEST['s'] ) and ! empty( $_REQUEST['s'] ) ) {
|
632 |
+
$current_url = add_query_arg( 's', $_REQUEST['s'], $current_url ); }
|
633 |
+
|
634 |
+
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
635 |
+
'prev-page' . $disable_first,
|
636 |
+
esc_attr__( 'Go to the previous page' ),
|
637 |
+
esc_url( add_query_arg( 'paged', max( 1, $current -1 ), $current_url ) ),
|
638 |
+
'‹'
|
639 |
+
);
|
640 |
+
|
641 |
+
if ( 'bottom' == $which ) {
|
642 |
+
$html_current_page = $current;
|
643 |
+
} else {
|
644 |
+
$html_current_page = sprintf( "%s<input class='current-page' id='current-page-selector' title='%s' type='text' name='paged' value='%s' size='%d' />",
|
645 |
+
'<label for="current-page-selector" class="screen-reader-text">' . __( 'Select Page' ) . '</label>',
|
646 |
+
esc_attr__( 'Current page' ),
|
647 |
+
$current,
|
648 |
+
strlen( $total_pages )
|
649 |
+
);
|
650 |
+
}
|
651 |
+
$html_total_pages = sprintf( "<span class='total-pages'>%s</span>", number_format_i18n( $total_pages ) );
|
652 |
+
$page_links[] = '<span class="paging-input">' . sprintf( _x( '%1$s of %2$s', 'paging' ), $html_current_page, $html_total_pages ) . '</span>';
|
653 |
+
|
654 |
+
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
655 |
+
'next-page' . $disable_last,
|
656 |
+
esc_attr__( 'Go to the next page' ),
|
657 |
+
esc_url( add_query_arg( 'paged', min( $total_pages, $current + 1 ), $current_url ) ),
|
658 |
+
'›'
|
659 |
+
);
|
660 |
+
|
661 |
+
$page_links[] = sprintf( "<a class='%s' title='%s' href='%s'>%s</a>",
|
662 |
+
'last-page' . $disable_last,
|
663 |
+
esc_attr__( 'Go to the last page' ),
|
664 |
+
esc_url( add_query_arg( 'paged', $total_pages, $current_url ) ),
|
665 |
+
'»'
|
666 |
+
);
|
667 |
+
|
668 |
+
$pagination_links_class = 'pagination-links';
|
669 |
+
if ( ! empty( $infinite_scroll ) ) {
|
670 |
+
$pagination_links_class = ' hide-if-js';
|
671 |
+
}
|
672 |
+
$output .= "\n<span class='$pagination_links_class'>" . join( "\n", $page_links ) . '</span>';
|
673 |
+
|
674 |
+
if ( $total_pages ) {
|
675 |
+
$page_class = $total_pages < 2 ? ' one-page' : '';
|
676 |
+
} else {
|
677 |
+
$page_class = ' no-pages';
|
678 |
+
}
|
679 |
+
$this->_pagination = "<div class='tablenav-pages{$page_class}'>$output</div>";
|
680 |
+
|
681 |
+
echo $this->_pagination;
|
682 |
+
}
|
683 |
+
|
684 |
+
/**
|
685 |
+
* Build Filter query.
|
686 |
+
* @param string $query SQL query.
|
687 |
+
* @return string SQL query.
|
688 |
+
*/
|
689 |
+
private function filter_query( $query ) {
|
690 |
+
|
691 |
+
$add_query = '';
|
692 |
+
$filter_by = $_REQUEST['filter_by'];
|
693 |
+
switch ( $filter_by ) {
|
694 |
+
case 'today' :
|
695 |
+
$today = getdate();
|
696 |
+
$add_query = sprintf( "AND( YEAR({$this->currenttimestamp_field}) = %s AND MONTH({$this->currenttimestamp_field}) = %s AND DAYOFMONTH({$this->currenttimestamp_field}) = %s)", $today['year'], $today['mon'], $today['mday'] );
|
697 |
+
break;
|
698 |
+
case 'yesterday' :
|
699 |
+
$yesterday = strtotime( date( 'Y-m-d', strtotime( ' - 1 day' ) ) );
|
700 |
+
$add_query = sprintf( "AND( YEAR({$this->currenttimestamp_field}) = %s AND MONTH({$this->currenttimestamp_field}) = %s AND DAYOFMONTH({$this->currenttimestamp_field}) = %s)", date( 'Y',$yesterday ), date( 'm',$yesterday ), date( 'd',$yesterday ) );
|
701 |
+
break;
|
702 |
+
case 'this_week' :
|
703 |
+
$week = date( 'W' );
|
704 |
+
$year = date( 'Y' );
|
705 |
+
$add_query = sprintf( "AND( YEAR({$this->currenttimestamp_field}) = %s AND WEEK({$this->currenttimestamp_field}, 1) = %s )", $year, $week );
|
706 |
+
break;
|
707 |
+
case 'this_month':
|
708 |
+
$month = date( 'm' );
|
709 |
+
$add_query = sprintf( "AND( MONTH({$this->currenttimestamp_field}) = %s )", $month );
|
710 |
+
break;
|
711 |
+
case 'last_3_months' :
|
712 |
+
$start_date = date( 'Y-m-d h:i:s', mktime( 0, 0, 0, date( 'm' ) -1, 1, date( 'Y' ) ) );
|
713 |
+
$end_date = date( 'Y-m-d h:i:s', mktime( 0, 0, 0, date( 'm' ) - 3, 1, date( 'Y' ) ) );
|
714 |
+
$add_query = sprintf( "AND {$this->currenttimestamp_field} > '%s' AND {$this->currenttimestamp_field} < '%s'", $end_date, $start_date );
|
715 |
+
break;
|
716 |
+
case 'last_6_months' :
|
717 |
+
$start_date = date( 'Y-m-d h:i:s', mktime( 0, 0, 0, date( 'm' ) -1, 1, date( 'Y' ) ) );
|
718 |
+
$end_date = date( 'Y-m-d h:i:s', mktime( 0, 0, 0, date( 'm' ) - 6, 1, date( 'Y' ) ) );
|
719 |
+
$add_query = sprintf( "AND {$this->currenttimestamp_field} > '%s' AND {$this->currenttimestamp_field} < '%s'", $end_date, $start_date );
|
720 |
+
break;
|
721 |
+
case 'last_year' :
|
722 |
+
$year = date( 'Y', strtotime( '-1 Year' ) );
|
723 |
+
$add_query = sprintf( "AND YEAR({$this->currenttimestamp_field}) = %s", $year );
|
724 |
+
break;
|
725 |
+
default :
|
726 |
+
break;
|
727 |
+
|
728 |
+
}
|
729 |
+
|
730 |
+
if ( isset( $_POST['from_date'] ) && ! empty( $_POST['from_date'] ) && isset( $_POST['to_date'] ) && ! empty( $_POST['to_date'] ) ) {
|
731 |
+
$from_date = date( 'Y-m-d h:i:s', strtotime( $_POST['from_date'] ) );
|
732 |
+
$to_date = date( 'Y-m-d h:i:s', strtotime( $_POST['to_date'] ) );
|
733 |
+
$add_query = sprintf( "AND {$this->currenttimestamp_field} >= '%s' AND {$this->currenttimestamp_field} <= '%s'", $from_date, $to_date );
|
734 |
+
}
|
735 |
+
|
736 |
+
if ( strpos( strtolower( $query ), 'where' ) == false ) {
|
737 |
+
$query .= ' WHERE 1=1'; }
|
738 |
+
if ( ! empty( $add_query ) ) {
|
739 |
+
$query .= ' '.$add_query; }
|
740 |
+
return $query;
|
741 |
+
}
|
742 |
+
|
743 |
+
}
|
core/class.template.php
ADDED
@@ -0,0 +1,844 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Generate Bootstrap Form and it's Elements.
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @version 3.0.0
|
6 |
+
* @package Maps
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! class_exists( 'Responsive_Markup' ) ) {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Generate Bootstrap Form and it's Elements.
|
13 |
+
* @author Flipper Code <hello@flippercode.com>
|
14 |
+
* @version 3.0.0
|
15 |
+
* @package Maps
|
16 |
+
*/
|
17 |
+
class Responsive_Markup {
|
18 |
+
/**
|
19 |
+
* Form Title
|
20 |
+
* @var String
|
21 |
+
*/
|
22 |
+
protected $form_title = null;
|
23 |
+
/**
|
24 |
+
* Form Name
|
25 |
+
* @var String
|
26 |
+
*/
|
27 |
+
public $form_name = null;
|
28 |
+
/**
|
29 |
+
* Form ID
|
30 |
+
* @var String
|
31 |
+
*/
|
32 |
+
public $form_id = null;
|
33 |
+
/**
|
34 |
+
* Form Action
|
35 |
+
* @var String
|
36 |
+
*/
|
37 |
+
public $form_action = '';
|
38 |
+
/**
|
39 |
+
* Form Orientation - Vertical or Horizontal
|
40 |
+
* @var String
|
41 |
+
*/
|
42 |
+
public $form_type = 'form-horizontal';
|
43 |
+
/**
|
44 |
+
* Call to Action Slug
|
45 |
+
* @var String
|
46 |
+
*/
|
47 |
+
protected $manage_pagename = null;
|
48 |
+
/**
|
49 |
+
* Call to Action Title
|
50 |
+
* @var String
|
51 |
+
*/
|
52 |
+
protected $manage_pagetitle = null;
|
53 |
+
/**
|
54 |
+
* Success or Failure Form Response
|
55 |
+
* @var Array
|
56 |
+
*/
|
57 |
+
protected $form_response = null;
|
58 |
+
/**
|
59 |
+
* Form Method - POST or GET
|
60 |
+
* @var string
|
61 |
+
*/
|
62 |
+
protected $form_method = 'post';
|
63 |
+
/**
|
64 |
+
* Bootstrap Elements Supported
|
65 |
+
* @var Array
|
66 |
+
*/
|
67 |
+
private $form_elements = array( 'text','checkbox','radio','submit','button','select', 'hidden', 'wp_editor', 'html', 'datalist','textarea' , 'file' , 'div' , 'blockquote','html' , 'image','group','table', 'message', 'anchor', 'image_picker' );
|
68 |
+
/**
|
69 |
+
* Attributes Allowed
|
70 |
+
* @var Array
|
71 |
+
*/
|
72 |
+
private $allowed_attributes;
|
73 |
+
/**
|
74 |
+
* Hidden Fields
|
75 |
+
* @var Array
|
76 |
+
*/
|
77 |
+
private $form_hiddens = array();
|
78 |
+
/**
|
79 |
+
* Form nonce key.
|
80 |
+
* @var string
|
81 |
+
*/
|
82 |
+
private $nonce_key = 'wpgmp-nonce';
|
83 |
+
/**
|
84 |
+
* Array of Bootstrap Elements
|
85 |
+
* @var Array
|
86 |
+
*/
|
87 |
+
protected $elements = array();
|
88 |
+
/**
|
89 |
+
* Array of Previously Stored Elements
|
90 |
+
* @var Array
|
91 |
+
*/
|
92 |
+
protected $backup_elements = array();
|
93 |
+
/**
|
94 |
+
* Array of Rendered Elements
|
95 |
+
* @var Array
|
96 |
+
*/
|
97 |
+
protected $partially_rendered = false;
|
98 |
+
/**
|
99 |
+
* Number of bootstrap columns
|
100 |
+
* @var Int
|
101 |
+
*/
|
102 |
+
/**
|
103 |
+
* Whether setting api enabled or not.
|
104 |
+
* @var boolean
|
105 |
+
*/
|
106 |
+
public $setting_api = false;
|
107 |
+
/**
|
108 |
+
* Columns in row.
|
109 |
+
* @var integer
|
110 |
+
*/
|
111 |
+
protected $columns = 1;
|
112 |
+
/**
|
113 |
+
* Intialize form properties.
|
114 |
+
*/
|
115 |
+
public function __construct( ) {
|
116 |
+
|
117 |
+
$this->allowed_attributes = array_fill_keys( array( 'lable', 'id', 'class', 'required', 'default_value', 'value', 'options', 'desc', 'before', 'after', 'radio-val-label', 'onclick', 'placeholder', 'textarea_rows', 'textarea_name', 'html', 'current', 'width', 'height', 'src', 'alt', 'heading', 'data', 'show' ) , '' );
|
118 |
+
$this->allowed_attributes['style'] = array();
|
119 |
+
$this->allowed_attributes['required'] = false;
|
120 |
+
|
121 |
+
}
|
122 |
+
/**
|
123 |
+
* Set Form's header
|
124 |
+
* @param String $form_title Form Title.
|
125 |
+
* @param String $response Success or Failure Message.
|
126 |
+
* @param string $manage_pagetitle Call to Action Title.
|
127 |
+
* @param string $manage_pagename Call to Action Page Slug.
|
128 |
+
*/
|
129 |
+
public function set_header( $form_title, $response, $manage_pagetitle = '', $manage_pagename = '' ) {
|
130 |
+
if ( isset( $form_title ) && ! empty( $form_title ) ) {
|
131 |
+
$this->form_title = $form_title; }
|
132 |
+
if ( isset( $response ) && ! empty( $response ) ) {
|
133 |
+
$this->form_response = $response; }
|
134 |
+
$this->manage_pagename = $manage_pagename;
|
135 |
+
$this->manage_pagetitle = $manage_pagetitle;
|
136 |
+
}
|
137 |
+
|
138 |
+
/**
|
139 |
+
* Form Method
|
140 |
+
* @param string $method Form Method.
|
141 |
+
*/
|
142 |
+
public function set_form_method($method) {
|
143 |
+
$this->form_method = $method;
|
144 |
+
}
|
145 |
+
/**
|
146 |
+
* Title Setter
|
147 |
+
* @param string $title Form Title.
|
148 |
+
*/
|
149 |
+
public function set_title($title) {
|
150 |
+
$this->form_title = $title;
|
151 |
+
}
|
152 |
+
/**
|
153 |
+
* Action Setter
|
154 |
+
* @param String $action Form Action.
|
155 |
+
*/
|
156 |
+
public function set_form_action($action) {
|
157 |
+
$this->form_action = $action;
|
158 |
+
}
|
159 |
+
/**
|
160 |
+
* Title Getter
|
161 |
+
* @return String Get Form Title.
|
162 |
+
*/
|
163 |
+
public function get_title() {
|
164 |
+
if ( isset( $this->form_title ) && ! empty( $this->form_title ) ) {
|
165 |
+
return $this->form_title; }
|
166 |
+
}
|
167 |
+
/**
|
168 |
+
* Call to Action Button
|
169 |
+
*/
|
170 |
+
public function get_manage_url() {
|
171 |
+
return "   ( <a href='http://codecanyon.net/item/advanced-google-maps-plugin-for-wordpress/5211638'>Download Pro Version</a> )";
|
172 |
+
}
|
173 |
+
/**
|
174 |
+
* Get form success or error message.
|
175 |
+
* @return HTML Success or error message html.
|
176 |
+
*/
|
177 |
+
public function get_form_messages() {
|
178 |
+
|
179 |
+
if ( empty( $this->form_response ) && ! is_array( $this->form_response ) ) {
|
180 |
+
return; }
|
181 |
+
$response = $this->form_response;
|
182 |
+
$output = '';
|
183 |
+
if ( $response['error'] ) {
|
184 |
+
|
185 |
+
$output .= '<div class="col-md-11 alert alert-danger fade in">';
|
186 |
+
$output .= ''.$response['error'].'</div>';
|
187 |
+
} else {
|
188 |
+
|
189 |
+
$output .= '<div class="col-md-11 alert alert-success fade in">';
|
190 |
+
$output .= ''.$response['success'].'</div>';
|
191 |
+
}
|
192 |
+
return $output;
|
193 |
+
}
|
194 |
+
/**
|
195 |
+
* Form header getter.
|
196 |
+
* @return HTML Generate form header html.
|
197 |
+
*/
|
198 |
+
public function get_header() {
|
199 |
+
|
200 |
+
$output = '<div class="container">
|
201 |
+
<div class="row">
|
202 |
+
<div class="col-md-12">
|
203 |
+
<h4 class="alert alert-info">'.$this->get_title().$this->get_manage_url().'</h4>
|
204 |
+
<div class="wpgmp-overview">'.
|
205 |
+
$this->get_form_messages();
|
206 |
+
return apply_filters( 'wpgmp_form_header_html', $output );
|
207 |
+
}
|
208 |
+
/**
|
209 |
+
* Form footer getter.
|
210 |
+
* @return HTML Generate form footer html.
|
211 |
+
*/
|
212 |
+
public function get_footer( ) {
|
213 |
+
$output = '</div>
|
214 |
+
</div>
|
215 |
+
</div>
|
216 |
+
<a href="http://www.flippercode.com/forums" target="_blank" title="Ask Question" class="helpdask-bootom">Helpdesk ?</a>
|
217 |
+
</div>';
|
218 |
+
return apply_filters( 'wpgmp_form_footer_html', $output );
|
219 |
+
}
|
220 |
+
/**
|
221 |
+
* Bootstrap columns setter.
|
222 |
+
* @param int $column Set columns occupied by element.
|
223 |
+
*/
|
224 |
+
public function set_col($column) {
|
225 |
+
if ( $this->elements ) {
|
226 |
+
$last_index = key( array_reverse( $this->elements ) );
|
227 |
+
$this->elements[ $last_index ]['col_after'] = $column;
|
228 |
+
return;
|
229 |
+
}
|
230 |
+
$this->columns = $column ? absint( $column ) : 2;
|
231 |
+
}
|
232 |
+
/**
|
233 |
+
* Bootstrap columns getter.
|
234 |
+
*/
|
235 |
+
public function get_col() {
|
236 |
+
return $this->columns;
|
237 |
+
}
|
238 |
+
/**
|
239 |
+
* Add element in queue.
|
240 |
+
* @param string $type Element type.
|
241 |
+
* @param string $name Element name.
|
242 |
+
* @param array $args Element Properties.
|
243 |
+
*/
|
244 |
+
public function add_element( $type, $name, $args = array() ) {
|
245 |
+
if ( ! in_array( $type, $this->form_elements ) ) {
|
246 |
+
return; }
|
247 |
+
|
248 |
+
$this->elements[ $name ] = shortcode_atts( $this->allowed_attributes, $args );
|
249 |
+
$this->elements[ $name ]['type'] = $type;
|
250 |
+
|
251 |
+
}
|
252 |
+
/**
|
253 |
+
* Display bootstrap elements.
|
254 |
+
* @param boolean $echo Echo or not.
|
255 |
+
* @return HTML Return form's element.
|
256 |
+
*/
|
257 |
+
public function print_elements($echo = true) {
|
258 |
+
|
259 |
+
if ( empty( $this->backup_elements ) ) {
|
260 |
+
|
261 |
+
$form_output = $this->get_header();
|
262 |
+
$form_output .= $this->get_form_header();
|
263 |
+
$this->partially_rendered = true;
|
264 |
+
}
|
265 |
+
|
266 |
+
$element_html = $this->get_combined_markup();
|
267 |
+
$form_output .= $element_html;
|
268 |
+
$this->backup_elements[] = $this->elements;
|
269 |
+
unset( $this->elements );
|
270 |
+
if ( $echo ) {
|
271 |
+
esc_html_e( balanceTags( $form_output ) );
|
272 |
+
} else { return balanceTags( esc_html( $form_output ) ); }
|
273 |
+
}
|
274 |
+
/**
|
275 |
+
* Concat form elements together.
|
276 |
+
* @return html Combined HTML of each elements.
|
277 |
+
*/
|
278 |
+
public function get_combined_markup() {
|
279 |
+
|
280 |
+
$element_html = '';
|
281 |
+
if ( $this->elements ) {
|
282 |
+
$elements = $this->elements;
|
283 |
+
$before = apply_filters( 'wpgmp_element_before_start_row', '<div class="form-group {modifier}">' );
|
284 |
+
$after = apply_filters( 'wpgmp_element_after_end_row', '</div>' );
|
285 |
+
$num = 0;
|
286 |
+
while ( $num < count( $elements ) ) {
|
287 |
+
$col = $this->get_col();
|
288 |
+
$elem_content = '';
|
289 |
+
|
290 |
+
foreach ( array_slice( $elements, $num, $col ) as $name => $atts ) {
|
291 |
+
$row_extra = false;
|
292 |
+
$temp = $before;
|
293 |
+
if ( ! isset( $atts['type'] ) || ! is_string( $name ) ) {
|
294 |
+
continue; }
|
295 |
+
|
296 |
+
if ( 'hidden' == $atts['type'] ) {
|
297 |
+
|
298 |
+
$elem_content .= call_user_func( 'Responsive_Markup::field_'.$atts['type'], $name, $atts );
|
299 |
+
continue;
|
300 |
+
}
|
301 |
+
|
302 |
+
$elem_content .= $this->get_element_html( $name, $atts['type'], $atts );
|
303 |
+
|
304 |
+
if ( isset( $atts['col_after'] ) ) {
|
305 |
+
$this->columns = $atts['col_after']; }
|
306 |
+
if ( isset( $atts['show'] ) and 'false' == $atts['show'] ) {
|
307 |
+
$row_extra = true; }
|
308 |
+
}
|
309 |
+
if ( true == $row_extra ) {
|
310 |
+
$temp = str_replace( '{modifier}', 'hiderow', $temp );
|
311 |
+
} else {
|
312 |
+
$temp = str_replace( '{modifier}', '', $temp );
|
313 |
+
}
|
314 |
+
if ( ! empty( $elem_content ) ) {
|
315 |
+
$element_html .= $temp.$elem_content.$after; }
|
316 |
+
$num = $num + $col;
|
317 |
+
}
|
318 |
+
}
|
319 |
+
return $element_html;
|
320 |
+
|
321 |
+
}
|
322 |
+
/**
|
323 |
+
* Form header getter.
|
324 |
+
* @return html Generate form header html.
|
325 |
+
*/
|
326 |
+
public function get_form_header() {
|
327 |
+
|
328 |
+
$form_header = '<form enctype="multipart/form-data" method="'.$this->form_method.'" action="'.$this->form_action.'"';
|
329 |
+
if ( isset( $this->form_name ) && ! empty( $this->form_name ) ) {
|
330 |
+
$form_header .= ' name="'.$this->form_name.'" '; }
|
331 |
+
if ( isset( $this->form_id ) && ! empty( $this->form_id ) ) {
|
332 |
+
$form_header .= ' id="'.$this->form_id.'" '; }
|
333 |
+
$form_header .= '>';
|
334 |
+
$form_header .= '<div class="'.$this->form_type.'">';
|
335 |
+
return $form_header;
|
336 |
+
|
337 |
+
}
|
338 |
+
/**
|
339 |
+
* Form nonce key setter.
|
340 |
+
* @param string $nonce_key Form nonce key.
|
341 |
+
*/
|
342 |
+
public function set_form_nonce($nonce_key) {
|
343 |
+
$this->nonce_key = $nonce_key;
|
344 |
+
}
|
345 |
+
/**
|
346 |
+
* Form footer getter.
|
347 |
+
* @return html Generate form footer html.
|
348 |
+
*/
|
349 |
+
public function get_form_footer() {
|
350 |
+
|
351 |
+
$form_footer = '</div>';
|
352 |
+
$form_footer .= wp_nonce_field( $this->nonce_key,'_wpnonce',true,false );
|
353 |
+
$form_footer .= '</form>';
|
354 |
+
return $form_footer;
|
355 |
+
}
|
356 |
+
/**
|
357 |
+
* Echo or return html elements.
|
358 |
+
* @param boolean $echo True to display.
|
359 |
+
* @return html html Generate form html
|
360 |
+
*/
|
361 |
+
public function render( $echo = true) {
|
362 |
+
|
363 |
+
if ( ! $this->elements || ! is_array( $this->elements ) and $this->partially_rendered == false ) {
|
364 |
+
echo '<div id="message" class="error"><p>Please add form element first.</p></div>';
|
365 |
+
return;
|
366 |
+
}
|
367 |
+
|
368 |
+
$form_output = '';
|
369 |
+
if ( empty( $this->backup_elements ) ) {
|
370 |
+
$form_output = $this->get_header();
|
371 |
+
$form_output .= $this->get_form_header();
|
372 |
+
}
|
373 |
+
|
374 |
+
$element_html = $this->get_combined_markup();
|
375 |
+
$form_output .= $element_html;
|
376 |
+
|
377 |
+
$form_output .= $this->get_form_footer();
|
378 |
+
$form_output .= $this->get_footer();
|
379 |
+
|
380 |
+
if ( $echo ) {
|
381 |
+
echo balanceTags( $form_output );
|
382 |
+
} else { return $form_output; }
|
383 |
+
}
|
384 |
+
/**
|
385 |
+
* Element's html creater.
|
386 |
+
* @param string $name Element Name.
|
387 |
+
* @param string $type Element Type.
|
388 |
+
* @param array $atts Element Options.
|
389 |
+
* @return html Element's Html.
|
390 |
+
*/
|
391 |
+
public static function get_element_html( $name, $type, $atts ) {
|
392 |
+
|
393 |
+
$element_output = '';
|
394 |
+
if ( 'hidden' == $type ) {
|
395 |
+
|
396 |
+
$element_output = call_user_func( 'Responsive_Markup::field_'.$type, $name, $atts );
|
397 |
+
return $element_output;
|
398 |
+
|
399 |
+
} else {
|
400 |
+
|
401 |
+
if ( ! empty( $atts['lable'] ) ) {
|
402 |
+
$element_output .= apply_filters( 'wpgmp_input_label_'.$name, '<div class="col-md-3"><label for="'.$name.'">'.$atts['lable'].'</label>'.self::element_mandatory( @$atts['required'] ).'</div>' ); }
|
403 |
+
$element_output .= @$atts['before'] ? @$atts['before'] : '<div class="col-md-8">';
|
404 |
+
$element_output .= call_user_func( 'Responsive_Markup::field_'.$type, $name, $atts );
|
405 |
+
$element_output .= @$atts['after'] ? @$atts['after'] : '</div>';
|
406 |
+
return $element_output;
|
407 |
+
}
|
408 |
+
|
409 |
+
}
|
410 |
+
/**
|
411 |
+
* Display mandatory indicator on element.
|
412 |
+
* @param boolean $required Whether field is required or not.
|
413 |
+
* @return html Mandatory indicator.
|
414 |
+
*/
|
415 |
+
public static function element_mandatory( $required = false ) {
|
416 |
+
|
417 |
+
if ( true == $required ) {
|
418 |
+
return '<span style="color:#F00;">*</span>'; }
|
419 |
+
}
|
420 |
+
/**
|
421 |
+
* Attributes Generator for the element.
|
422 |
+
* @param array $atts Attributes keys and values.
|
423 |
+
* @return string Attributes section of the element.
|
424 |
+
*/
|
425 |
+
protected static function get_element_attributes($atts) {
|
426 |
+
if ( ! is_array( $atts ) ) {
|
427 |
+
return null; }
|
428 |
+
|
429 |
+
$attributes = array();
|
430 |
+
if ( isset( $atts['id'] ) && ! empty( $atts['id'] ) ) {
|
431 |
+
$attributes[0] = 'id="'.$atts['id'].'"'; }
|
432 |
+
$classes = ( ! empty( $atts['class'] )) ? $atts['class'] : 'form-control';
|
433 |
+
$attributes[1] = 'class="'.$classes.'"';
|
434 |
+
if ( isset( $atts['style'] ) && ! empty( $atts['style'] ) ) {
|
435 |
+
$attributes[2] = 'style="';
|
436 |
+
foreach ( $atts['style'] as $key => $value ) {
|
437 |
+
$attributes[2] .= $key.':'.$value.';'; }
|
438 |
+
$attributes[2] .= '"';
|
439 |
+
}
|
440 |
+
if ( isset( $atts['placeholder'] ) && ! empty( $atts['placeholder'] ) ) {
|
441 |
+
$attributes[3] = 'placeholder="'.esc_attr( $atts['placeholder'] ).'"';
|
442 |
+
}
|
443 |
+
|
444 |
+
if ( isset( $atts['data'] ) && ! empty( $atts['data'] ) ) {
|
445 |
+
foreach ( $atts['data'] as $key => $value ) {
|
446 |
+
$attributes[3] = 'data-'.$key.'="'.esc_attr( $value ).'"'; }
|
447 |
+
}
|
448 |
+
|
449 |
+
if ( ! $attributes ) {
|
450 |
+
return null; }
|
451 |
+
|
452 |
+
return implode( ' ', $attributes );
|
453 |
+
|
454 |
+
}
|
455 |
+
/**
|
456 |
+
* Image picker element.
|
457 |
+
* @param string $name No use.
|
458 |
+
* @param array $atts Attributes for custom html.
|
459 |
+
* @return html Image Picker.
|
460 |
+
*/
|
461 |
+
public static function field_image_picker($name, $atts) {
|
462 |
+
|
463 |
+
$html = Responsive_Markup::field_image('selected_image', array(
|
464 |
+
'lable' => 'Choose marker Image',
|
465 |
+
'src' => $atts['src'],
|
466 |
+
'width' => '32',
|
467 |
+
'class' => 'noclass selected_image col-md-1',
|
468 |
+
'height' => '37',
|
469 |
+
'required' => $atts['required'],
|
470 |
+
));
|
471 |
+
|
472 |
+
$html .= Responsive_Markup::field_anchor('choose_image', array(
|
473 |
+
'value' => __( 'Choose Marker Image', WPGMP_TEXT_DOMAIN ),
|
474 |
+
'href' => 'javascript:void(0);',
|
475 |
+
'class' => 'btn btn-info choose_image col-md-3 ',
|
476 |
+
'data' => array( 'target' => $name ),
|
477 |
+
));
|
478 |
+
|
479 |
+
$html .= Responsive_Markup::field_anchor('remove_image', array(
|
480 |
+
'value' => __( 'Remove Marker Image', WPGMP_TEXT_DOMAIN ),
|
481 |
+
'before' => '<div class="col-md-3">',
|
482 |
+
'after' => '</div>',
|
483 |
+
'href' => 'javascript:void(0);',
|
484 |
+
'class' => 'btn btn-danger remove_image col-md-3 col-md-offset-1',
|
485 |
+
'data' => array( 'target' => $name ),
|
486 |
+
|
487 |
+
));
|
488 |
+
|
489 |
+
$html .= Responsive_Markup::field_hidden('group_marker', array(
|
490 |
+
'value' => $atts['src'],
|
491 |
+
'id' => $name,
|
492 |
+
'name' => $name,
|
493 |
+
));
|
494 |
+
|
495 |
+
return $html;
|
496 |
+
}
|
497 |
+
|
498 |
+
/**
|
499 |
+
* Custom HTML to display.
|
500 |
+
* @param string $name No use.
|
501 |
+
* @param array $atts Attributes for custom html.
|
502 |
+
* @return html Body of custom html.
|
503 |
+
*/
|
504 |
+
public static function field_html($name, $atts) {
|
505 |
+
extract( $atts );
|
506 |
+
return $html;
|
507 |
+
}
|
508 |
+
/**
|
509 |
+
* Hidden Field
|
510 |
+
* @param string $name Element name.
|
511 |
+
* @param array $atts Attributes.
|
512 |
+
* @return html Element Html.
|
513 |
+
*/
|
514 |
+
public static function field_hidden( $name, $atts ) {
|
515 |
+
|
516 |
+
extract( $atts );
|
517 |
+
$value = $value ? $value : $default_value;
|
518 |
+
return '<input type="hidden" name="'.$name.'" id="'.$id.'" value="'.$value.'" />';
|
519 |
+
}
|
520 |
+
/**
|
521 |
+
* Group Heading
|
522 |
+
* @param string $name Group title.
|
523 |
+
* @param array $atts Attributes.
|
524 |
+
* @return html Element Html.
|
525 |
+
*/
|
526 |
+
public static function field_group( $name, $atts ) {
|
527 |
+
|
528 |
+
extract( $atts );
|
529 |
+
$value = $value ? $value : $default_value;
|
530 |
+
return '<h4 class="alert alert-info">'.$value.'</h4>';
|
531 |
+
}
|
532 |
+
/**
|
533 |
+
* DIV node
|
534 |
+
* @param string $name Element name.
|
535 |
+
* @param array $atts Attributes.
|
536 |
+
* @return html Element Html.
|
537 |
+
*/
|
538 |
+
public static function field_div( $name, $atts ) {
|
539 |
+
|
540 |
+
extract( $atts );
|
541 |
+
$value = $value ? $value : $default_value;
|
542 |
+
return '<div name="'.$name.'" '.self::get_element_attributes( $atts ).'>'.$value.'</div>';
|
543 |
+
}
|
544 |
+
/**
|
545 |
+
* Blockquote node
|
546 |
+
* @param string $name Element name.
|
547 |
+
* @param array $atts Attributes.
|
548 |
+
* @return html Element Html.
|
549 |
+
*/
|
550 |
+
public static function field_blockquote( $name, $atts ) {
|
551 |
+
|
552 |
+
extract( $atts );
|
553 |
+
$value = $value ? $value : $default_value;
|
554 |
+
return '<blockquote>'.$atts['value'].'</blockquote>';
|
555 |
+
|
556 |
+
}
|
557 |
+
/**
|
558 |
+
* Text Input element.
|
559 |
+
* @param string $name Element name.
|
560 |
+
* @param array $atts Attributes.
|
561 |
+
* @return html Element Html.
|
562 |
+
*/
|
563 |
+
public static function field_text( $name, $atts ) {
|
564 |
+
|
565 |
+
$elem_value = @$atts['value'] ? @$atts['value'] : $atts['default_value'];
|
566 |
+
if ( strstr( @$atts['class'], 'color' ) !== false ) {
|
567 |
+
$elem_value = str_replace( '#','',$elem_value );
|
568 |
+
$elem_value = '#'.$elem_value;
|
569 |
+
}
|
570 |
+
$element = '<input type="text" name="'.$name.'" value="'.esc_attr( stripcslashes( $elem_value ) ).'"'.self::get_element_attributes( $atts ).' />';
|
571 |
+
if ( isset( $atts['desc'] ) && ! empty( $atts['desc'] ) ) {
|
572 |
+
$element .= '<p class="help-block">'.$atts['desc'].'</p>'; }
|
573 |
+
return apply_filters( 'wpgmp_input_field_'.$name, $element, $name, $atts );
|
574 |
+
}
|
575 |
+
/**
|
576 |
+
* Display Information message in <p> tag.
|
577 |
+
* @param string $name Element name.
|
578 |
+
* @param array $atts Attributes.
|
579 |
+
* @return html Element Html.
|
580 |
+
*/
|
581 |
+
public static function field_infoarea($name, $atts) {
|
582 |
+
return '<p>'.$atts['desc'].'</p>'; }
|
583 |
+
|
584 |
+
/**
|
585 |
+
* Image tag.
|
586 |
+
* @param string $name Element name.
|
587 |
+
* @param array $atts Attributes.
|
588 |
+
* @return html Element Html.
|
589 |
+
*/
|
590 |
+
public static function field_image( $name, $atts ) {
|
591 |
+
|
592 |
+
$element = '<img src="'.$atts['src'].'" alt="'.$atts['alt'].'" height="'.$atts['height'].'" width="'.$atts['width'].'" '.self::get_element_attributes( $atts ).' >';
|
593 |
+
if ( isset( $atts['desc'] ) && ! empty( $atts['desc'] ) ) {
|
594 |
+
$element .= '<p class="help-block">'.$atts['desc'].'</p>'; }
|
595 |
+
return apply_filters( 'wpgmp_input_field_'.$name, $element, $name, $atts );
|
596 |
+
}
|
597 |
+
/**
|
598 |
+
* Generate output using wp_editor.
|
599 |
+
* @param string $name Element name.
|
600 |
+
* @param array $atts Attributes.
|
601 |
+
* @return html Element Html.
|
602 |
+
*/
|
603 |
+
public static function field_wp_editor( $name, $atts ) {
|
604 |
+
|
605 |
+
$value = $atts['value'] ? $atts['value'] : $atts['default_value'];
|
606 |
+
$args = array( 'textarea_rows' => $atts['textarea_rows'], 'textarea_name' => $atts['textarea_name'], 'editor_class' => $atts['class'] );
|
607 |
+
$output = '';
|
608 |
+
ob_start();
|
609 |
+
wp_editor( esc_textarea( $value ) , $name, $args );
|
610 |
+
$output .= ob_get_contents();
|
611 |
+
ob_clean();
|
612 |
+
$output .= '<p class="help-block">'.$atts['desc'].'</p>';
|
613 |
+
return $output;
|
614 |
+
|
615 |
+
}
|
616 |
+
|
617 |
+
/**
|
618 |
+
* Textarea element.
|
619 |
+
* @param string $name Element name.
|
620 |
+
* @param array $atts Attributes.
|
621 |
+
* @return html Element Html.
|
622 |
+
*/
|
623 |
+
public static function field_textarea( $name, $atts ) {
|
624 |
+
|
625 |
+
$elem_value = $atts['value'] ? $atts['value'] : $atts['default_value'];
|
626 |
+
$element = '<textarea rows="5" name="'.$name.'" '.self::get_element_attributes( $atts ).' >'.esc_textarea( wp_unslash( $elem_value ) ).'</textarea>';
|
627 |
+
if ( isset( $atts['desc'] ) && ! empty( $atts['desc'] ) ) {
|
628 |
+
$element .= '<p class="help-block">'.$atts['desc'].'</p>'; }
|
629 |
+
return apply_filters( 'wpgmp_input_field_'.$name, $element, $name, $atts );
|
630 |
+
}
|
631 |
+
/**
|
632 |
+
* File Input element.
|
633 |
+
* @param string $name Element name.
|
634 |
+
* @param array $atts Attributes.
|
635 |
+
* @return html Element Html.
|
636 |
+
*/
|
637 |
+
public static function field_file( $name, $atts ) {
|
638 |
+
|
639 |
+
$elem_value = $atts['value'] ? $atts['value'] : $atts['default_value'];
|
640 |
+
$element = '<input type="file" name="'.$name.'" '.self::get_element_attributes( $atts ).' />';
|
641 |
+
if ( isset( $atts['desc'] ) && ! empty( $atts['desc'] ) ) {
|
642 |
+
$element .= '<p class="help-block">'.$atts['desc'].'</p>'; }
|
643 |
+
return apply_filters( 'wpgmp_input_field_'.$name, $element, $name, $atts );
|
644 |
+
}
|
645 |
+
/**
|
646 |
+
* Select Input element.
|
647 |
+
* @param string $name Element name.
|
648 |
+
* @param array $atts Attributes.
|
649 |
+
* @return html Element Html.
|
650 |
+
*/
|
651 |
+
public static function field_select( $name, $atts ) {
|
652 |
+
|
653 |
+
if ( ! isset( $atts['options'] ) || empty( $atts['options'] ) ) {
|
654 |
+
return; }
|
655 |
+
|
656 |
+
$options = '';
|
657 |
+
$elem_value = $atts['current'] ? $atts['current'] : $atts['default_value'];
|
658 |
+
|
659 |
+
foreach ( $atts['options'] as $key => $value ) {
|
660 |
+
$options .= '<option value='.$key.' '.selected( $elem_value,$key,false ).'>'.$value.'</option>';
|
661 |
+
}
|
662 |
+
|
663 |
+
$element = '<select name="'.$name.'" '.self::get_element_attributes( $atts ).'>'.$options.'</select>';
|
664 |
+
if ( isset( $atts['desc'] ) && ! empty( $atts['desc'] ) ) {
|
665 |
+
$element .= '<p class="help-block">'.$atts['desc'].'</p>'; }
|
666 |
+
return apply_filters( 'wpgmp_select_field_'.$name, $element, $name, $atts );
|
667 |
+
}
|
668 |
+
|
669 |
+
/**
|
670 |
+
* Submit button element.
|
671 |
+
* @param string $name Element name.
|
672 |
+
* @param array $atts Attributes.
|
673 |
+
* @return html Element Html.
|
674 |
+
*/
|
675 |
+
public static function field_submit( $name, $atts ) {
|
676 |
+
|
677 |
+
$element = '<div class="row">
|
678 |
+
<div class="col-md-12">
|
679 |
+
<input type="submit" name="'.$name.'" class="btn btn-primary" value="'.$atts['value'].'"/>
|
680 |
+
</div>
|
681 |
+
</div>';
|
682 |
+
|
683 |
+
return apply_filters( 'wpgmp_input_field_'.$name, $element, $name, $atts );
|
684 |
+
}
|
685 |
+
/**
|
686 |
+
* Button element.
|
687 |
+
* @param string $name Element name.
|
688 |
+
* @param array $atts Attributes.
|
689 |
+
* @return html Element Html.
|
690 |
+
*/
|
691 |
+
public static function field_button( $name, $atts ) {
|
692 |
+
|
693 |
+
$eventstr = '';
|
694 |
+
if ( isset( $atts['onclick'] ) and ! empty( $atts['onclick'] ) ) {
|
695 |
+
|
696 |
+
$eventstr .= 'onclick ='.stripcslashes( $atts['onclick'] );
|
697 |
+
|
698 |
+
}
|
699 |
+
$element = '<button type="button" name="'.$name.'" '.self::get_element_attributes( $atts ).' />'.$atts['value'].'</button>';
|
700 |
+
if ( isset( $atts['desc'] ) && ! empty( $atts['desc'] ) ) {
|
701 |
+
$element .= '<p class="help-block">'.$atts['desc'].'</p>'; }
|
702 |
+
return apply_filters( 'wpgmp_input_field_'.$name, $element, $name, $atts );
|
703 |
+
}
|
704 |
+
/**
|
705 |
+
* Checkbox input element.
|
706 |
+
* @param string $name Element name.
|
707 |
+
* @param array $atts Attributes.
|
708 |
+
* @return html Element Html.
|
709 |
+
*/
|
710 |
+
public static function field_checkbox( $name, $atts ) {
|
711 |
+
|
712 |
+
$id = ( ! empty( $atts['id'] )) ? $atts['id'] : $name;
|
713 |
+
$value = $atts['value'] ? $atts['value'] : $atts['default_value'];
|
714 |
+
$element = '<div class="checkbox"><label><input type="checkbox" id="'.$atts['id'].'" name="'.$name.'" value="'.esc_attr( stripcslashes( $value ) ).'"'.self::get_element_attributes( $atts ).' '.checked( $value, $atts['current'], false ).'/>'.$atts['desc'].'</label></div> ';
|
715 |
+
return apply_filters( 'wpgmp_input_field_'.$name, $element, $name, $atts );
|
716 |
+
|
717 |
+
}
|
718 |
+
/**
|
719 |
+
* Anchor tag element.
|
720 |
+
* @param string $name Element name.
|
721 |
+
* @param array $atts Attributes.
|
722 |
+
* @return html Element Html.
|
723 |
+
*/
|
724 |
+
public static function field_anchor( $name, $atts ) {
|
725 |
+
|
726 |
+
$id = ( ! empty( $atts['id'] )) ? $atts['id'] : $name;
|
727 |
+
$value = $atts['value'] ? $atts['value'] : $atts['default_value'];
|
728 |
+
$element = '<a id="'.$atts['id'].'" name="'.$name.'" '.self::get_element_attributes( $atts ).'/>'.$value.'</a>';
|
729 |
+
if ( isset( $atts['desc'] ) && ! empty( $atts['desc'] ) ) {
|
730 |
+
$element .= '<p class="help-block">'.$atts['desc'].'</p>'; }
|
731 |
+
return apply_filters( 'wpgmp_input_field_'.$name, $element, $name, $atts );
|
732 |
+
|
733 |
+
}
|
734 |
+
/**
|
735 |
+
* Radio input element.
|
736 |
+
* @param string $name Element name.
|
737 |
+
* @param array $atts Attributes.
|
738 |
+
* @return html Element Html.
|
739 |
+
*/
|
740 |
+
public static function field_radio( $name, $atts ) {
|
741 |
+
|
742 |
+
$elem_value = $atts['current'] ? $atts['current'] : $atts['default_value'];
|
743 |
+
$element = '';
|
744 |
+
$radio_options = $atts['radio-val-label'];
|
745 |
+
if ( is_array( $atts['radio-val-label'] ) ) {
|
746 |
+
|
747 |
+
foreach ( $radio_options as $radio_val => $radio_label ) {
|
748 |
+
$element .= '<label class="radio-inline"><input type="radio" name="'.$name.'" value="'.esc_attr( stripcslashes( $radio_val ) ).'"'.self::get_element_attributes( $atts ).' '.checked( $radio_val, $elem_value, false ).'> '.$radio_label.'</label>';
|
749 |
+
}
|
750 |
+
}
|
751 |
+
return apply_filters( 'wpgmp_input_field_'.$name, $element, $name, $atts );
|
752 |
+
|
753 |
+
}
|
754 |
+
/**
|
755 |
+
* Message boxes.
|
756 |
+
* @param string $name Element name.
|
757 |
+
* @param array $atts Attributes.
|
758 |
+
* @return html Element Html.
|
759 |
+
*/
|
760 |
+
public static function field_message( $name, $atts ) {
|
761 |
+
$type = $atts['class'];
|
762 |
+
$id = $atts['id'];
|
763 |
+
$element = '<div '.self::get_element_attributes( $atts ).'>'.$atts['value'].'</div>';
|
764 |
+
return apply_filters( 'wpgmp_input_field_'.$name, $element, $name, $atts );
|
765 |
+
}
|
766 |
+
/**
|
767 |
+
* Sub heading
|
768 |
+
* @param string $heading heading.
|
769 |
+
* @return html blockquote html wrapper.
|
770 |
+
*/
|
771 |
+
public static function sub_heading($heading) {
|
772 |
+
|
773 |
+
return '<div class="col-md-12">
|
774 |
+
<blockquote>
|
775 |
+
'.$heading.'
|
776 |
+
</blockquote>
|
777 |
+
</div>';
|
778 |
+
}
|
779 |
+
/**
|
780 |
+
* Table generator.
|
781 |
+
* @param string $name Element name.
|
782 |
+
* @param array $atts Attributes.
|
783 |
+
* @return html Element Html.
|
784 |
+
*/
|
785 |
+
public static function field_table($name, $atts) {
|
786 |
+
$heads = $atts['heading'];
|
787 |
+
$data = $atts['data'];
|
788 |
+
$current = $atts['current'];
|
789 |
+
$id = (isset( $atts['id'] )) ? $atts['id'] : $name;
|
790 |
+
if ( ! isset( $atts['class'] ) or '' == $atts['class'] ) {
|
791 |
+
$atts['class'] = 'dataTable';
|
792 |
+
}
|
793 |
+
$output = '<table '.self::get_element_attributes( $atts ).' id="'.$id.'"><thead><tr>';
|
794 |
+
if ( is_array( $heads ) ) {
|
795 |
+
|
796 |
+
foreach ( $heads as $head ) {
|
797 |
+
$output .= '<td><strong>'.__( $head, WPGMP_TEXT_DOMAIN ).'</strong></td>';
|
798 |
+
}
|
799 |
+
}
|
800 |
+
|
801 |
+
$output .= '</tr></thead><tbody>';
|
802 |
+
if ( ! empty( $data ) ) {
|
803 |
+
foreach ( $data as $row => $columns ) {
|
804 |
+
$output .= '<tr>';
|
805 |
+
foreach ( $columns as $key => $col ) {
|
806 |
+
$output .= '<td>'.($col).'</td>'; }
|
807 |
+
$output .= '</tr>';
|
808 |
+
}
|
809 |
+
}
|
810 |
+
|
811 |
+
$output .= '</tbody></table>';
|
812 |
+
|
813 |
+
return apply_filters( 'wpgmp_input_field_'.$name, $output, $name, $atts );
|
814 |
+
|
815 |
+
}
|
816 |
+
/**
|
817 |
+
* Show success or error message.
|
818 |
+
* @param array $response Success or Error message.
|
819 |
+
* @return html Success or error message wrapper.
|
820 |
+
*/
|
821 |
+
public static function show_message($response) {
|
822 |
+
|
823 |
+
if ( empty( $response ) ) {
|
824 |
+
return; }
|
825 |
+
|
826 |
+
$output = '';
|
827 |
+
$output .= '<div id="message" class="'.$response['type'].'">';
|
828 |
+
$output .= '<p><strong>'.$response['message'].'</strong></p></div>';
|
829 |
+
|
830 |
+
return $output;
|
831 |
+
}
|
832 |
+
/**
|
833 |
+
* Button Wrapper
|
834 |
+
* @param string $title Button title.
|
835 |
+
* @param url $link Link url.
|
836 |
+
* @return html Button wrapper.
|
837 |
+
*/
|
838 |
+
public static function button($title, $link) {
|
839 |
+
|
840 |
+
return '<span class="glyphicon glyphicon-add wpgmp_new_add button action"><a href="'.esc_html( $link ).'">'.__( $title,WPGMP_TEXT_DOMAIN ).'</a></span>';
|
841 |
+
}
|
842 |
+
|
843 |
+
}
|
844 |
+
}
|
core/class.validation.php
ADDED
@@ -0,0 +1,793 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* WPGMP Validator class File.
|
4 |
+
* @package Core
|
5 |
+
* @author Flipper Code <hello@flippercode.com>
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( ! class_exists( 'WPGMP_Validator' ) ) {
|
9 |
+
|
10 |
+
/**
|
11 |
+
* WPGMP_Validator Class
|
12 |
+
* @author Flipper Code <hello@flippercode.com>
|
13 |
+
* @package Core
|
14 |
+
*/
|
15 |
+
class WPGMP_Validator {
|
16 |
+
/**
|
17 |
+
* WPGMP_Validator Constructer.
|
18 |
+
*/
|
19 |
+
function WPGMP_Validator() {
|
20 |
+
|
21 |
+
$this->id = 0;
|
22 |
+
}
|
23 |
+
/**
|
24 |
+
* Check if rule already exists.
|
25 |
+
* @param string $varname Element name.
|
26 |
+
* @param string $authType Validation Type.
|
27 |
+
* @return boolean True or False.
|
28 |
+
*/
|
29 |
+
function is_exist($varname, $authType) {
|
30 |
+
|
31 |
+
for ( $i = 0;$i < $this->id;$i++ ) {
|
32 |
+
if ( $this->check_vars[ $i ]['name'] == $varname && $this->check_vars[ $i ]['authtype'] == $authType ) {
|
33 |
+
return true; }
|
34 |
+
}
|
35 |
+
|
36 |
+
return false;
|
37 |
+
}
|
38 |
+
/**
|
39 |
+
* Add rule in queue.
|
40 |
+
* @param string $varname Element name.
|
41 |
+
* @param array $postVar Post Variable.
|
42 |
+
* @param string $authType Validation Type.
|
43 |
+
* @param string $error Error message.
|
44 |
+
*/
|
45 |
+
public function add($varname, $postVar, $authType, $error) {
|
46 |
+
|
47 |
+
global $frmdata;
|
48 |
+
|
49 |
+
$is_exist = $this->is_exist( $varname,$authType );
|
50 |
+
|
51 |
+
if ( true == $is_exist ) {
|
52 |
+
return; }
|
53 |
+
|
54 |
+
$index = $this->id++;
|
55 |
+
$this->check_vars[ $index ]['name'] = $varname;
|
56 |
+
$this->check_vars[ $index ]['data'] = $postVar;
|
57 |
+
$this->check_vars[ $index ]['authtype'] = $authType;
|
58 |
+
$this->check_vars[ $index ]['error'] = $error;
|
59 |
+
}
|
60 |
+
|
61 |
+
/**
|
62 |
+
* Validate all rules.
|
63 |
+
* @return string Validation response.
|
64 |
+
*/
|
65 |
+
public function validate() {
|
66 |
+
|
67 |
+
$errordata = array();
|
68 |
+
|
69 |
+
for ( $i = 0; $i < $this->id; $i++ ) {
|
70 |
+
|
71 |
+
$errorMsg = '';
|
72 |
+
$name = $this->check_vars[ $i ]['name'];
|
73 |
+
$postVar = $this->check_vars[ $i ]['data'];
|
74 |
+
$authType = $this->check_vars[ $i ]['authtype'];
|
75 |
+
$error = $this->check_vars[ $i ]['error'];
|
76 |
+
$pos = strpos( $authType, '=' );
|
77 |
+
|
78 |
+
if ( false != $pos ) {
|
79 |
+
$authType = substr( $this->check_vars[ $i ]['authtype'], 0, $pos );
|
80 |
+
$value = substr( $this->check_vars[ $i ]['authtype'], $pos + 1 );
|
81 |
+
}
|
82 |
+
|
83 |
+
switch ( $authType ) {
|
84 |
+
|
85 |
+
case 'req': {
|
86 |
+
|
87 |
+
if ( isset( $postVar['name'] ) and is_array( $postVar['name'] ) ) {
|
88 |
+
|
89 |
+
$count = count( $postVar['name'] );
|
90 |
+
|
91 |
+
for ( $j = 0; $j < $count; $j++ ) {
|
92 |
+
$length = strlen( trim( $postVar['name'][ $j ] ) );
|
93 |
+
if ( ! $length ) {
|
94 |
+
$errorMsg .= $error.' :File '.($j + 1).''; }
|
95 |
+
}
|
96 |
+
} elseif ( isset( $postVar['name'] ) && empty( $postVar['name'] ) ) {
|
97 |
+
|
98 |
+
$length = strlen( trim( $postVar['name'] ) );
|
99 |
+
if ( ! $length ) {
|
100 |
+
$errorMsg .= $error.''; }
|
101 |
+
} else {
|
102 |
+
|
103 |
+
$length = strlen( trim( $postVar ) );
|
104 |
+
if ( ! $length ) {
|
105 |
+
$errorMsg .= $error.''; }
|
106 |
+
}
|
107 |
+
|
108 |
+
break;
|
109 |
+
}
|
110 |
+
|
111 |
+
case 'alpha': {
|
112 |
+
$regexp = '/^[A-za-z]$/';
|
113 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
114 |
+
$length = strlen( trim( $postVar ) );
|
115 |
+
if ( $length ) {
|
116 |
+
$errorMsg .= $error.'<br>'; }
|
117 |
+
}
|
118 |
+
break;
|
119 |
+
}
|
120 |
+
|
121 |
+
case 'alphanum': {
|
122 |
+
$regexp = '/^[A-za-z0-9]$/';
|
123 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
124 |
+
$length = strlen( trim( $postVar ) );
|
125 |
+
if ( $length ) {
|
126 |
+
$errorMsg .= $error.'<br>'; }
|
127 |
+
}
|
128 |
+
break;
|
129 |
+
}
|
130 |
+
|
131 |
+
case 'num': {
|
132 |
+
$regexp = '/^[0-9]*$/';
|
133 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
134 |
+
$length = strlen( trim( $postVar ) );
|
135 |
+
if ( $length ) {
|
136 |
+
$errorMsg .= $error.'<br>'; }
|
137 |
+
}
|
138 |
+
break;
|
139 |
+
}
|
140 |
+
|
141 |
+
case 'max': {
|
142 |
+
$length = strlen( trim( $postVar ) );
|
143 |
+
if ( $length > $value ) {
|
144 |
+
$errorMsg .= $error.'<br>'; }
|
145 |
+
break;
|
146 |
+
}
|
147 |
+
|
148 |
+
case 'min': {
|
149 |
+
$length = strlen( trim( $postVar ) );
|
150 |
+
if ( $length < $value && 0 != $length ) {
|
151 |
+
$errorMsg .= $error.'<br>'; }
|
152 |
+
break;
|
153 |
+
}
|
154 |
+
|
155 |
+
case 'lte': {
|
156 |
+
if ( is_array( $postVar ) ) {
|
157 |
+
$count = count( $postVar );
|
158 |
+
if ( $count > $value ) {
|
159 |
+
$errorMsg .= $error.'<br>'; }
|
160 |
+
} else {
|
161 |
+
if ( $postVar > $value ) {
|
162 |
+
$errorMsg .= $error.'<br>'; }
|
163 |
+
}
|
164 |
+
break;
|
165 |
+
}
|
166 |
+
|
167 |
+
case 'gte':{
|
168 |
+
if ( is_array( $postVar ) ) {
|
169 |
+
$count = count( $postVar );
|
170 |
+
if ( $count < $value ) {
|
171 |
+
$errorMsg .= $error.'<br>'; }
|
172 |
+
} else {
|
173 |
+
if ( $postVar < $value ) {
|
174 |
+
$length = strlen( trim( $postVar ) );
|
175 |
+
if ( $length ) {
|
176 |
+
$errorMsg .= $error.'<br>'; }
|
177 |
+
}
|
178 |
+
}
|
179 |
+
break;
|
180 |
+
}
|
181 |
+
|
182 |
+
case 'username': {
|
183 |
+
$regexp1 = '/^[0-9]$/';
|
184 |
+
$regexp2 = '/^[a-zA-Z]+[a-zA-Z0-9\.\_]*[a-zA-Z0-9]+$/';
|
185 |
+
if ( ! preg_match( $regexp1, trim( $postVar ) ) && ! preg_match( $regexp2, trim( $postVar ) ) ) {
|
186 |
+
$length = strlen( trim( $postVar ) );
|
187 |
+
if ( $length ) {
|
188 |
+
$errorMsg .= $error.'<br>'; }
|
189 |
+
}
|
190 |
+
break;
|
191 |
+
}
|
192 |
+
|
193 |
+
case 'name':{
|
194 |
+
$regexp = '/^[a-zA-Z]+[a-zA-Z\.\- ]*[a-zA-Z]+$/';
|
195 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
196 |
+
$length = strlen( trim( $postVar ) );
|
197 |
+
if ( $length ) {
|
198 |
+
$errorMsg .= $error.'<br>'; }
|
199 |
+
}
|
200 |
+
break;
|
201 |
+
}
|
202 |
+
|
203 |
+
case 'address':{
|
204 |
+
$regexp = '/^[a-zA-Z0-9]+.*$/';
|
205 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
206 |
+
$length = strlen( trim( $postVar ) );
|
207 |
+
if ( $length ) {
|
208 |
+
$errorMsg .= $error.'<br>'; }
|
209 |
+
}
|
210 |
+
break;
|
211 |
+
}
|
212 |
+
|
213 |
+
case 'phone': {
|
214 |
+
|
215 |
+
if ( isset( $value ) ) {
|
216 |
+
$found = strpos( $value, ',' );
|
217 |
+
if ( false === $found ) {
|
218 |
+
$options[0] = $value;
|
219 |
+
} else {
|
220 |
+
$options = explode( ',', $value );
|
221 |
+
}
|
222 |
+
}
|
223 |
+
|
224 |
+
$patternMatch = 0;
|
225 |
+
foreach ( $options as $opt ) {
|
226 |
+
$type = $this->available_phone_type( $opt );
|
227 |
+
foreach ( $type as $regexp ) {
|
228 |
+
if ( preg_match( $regexp, $postVar ) ) {
|
229 |
+
$patternMatch = 1;
|
230 |
+
}
|
231 |
+
}
|
232 |
+
if ( $patternMatch ) { break; }
|
233 |
+
}
|
234 |
+
|
235 |
+
if ( ! $patternMatch ) {
|
236 |
+
$length = strlen( trim( $postVar ) );
|
237 |
+
if ( $length ) {
|
238 |
+
$errorMsg .= $error.'<br>'; }
|
239 |
+
}
|
240 |
+
break;
|
241 |
+
}
|
242 |
+
|
243 |
+
case 'allphone': {
|
244 |
+
|
245 |
+
$regexp1 = '/^[0-9]{8,15}$/';
|
246 |
+
// (+91)1111111111
|
247 |
+
$regexp2 = '/^[\(][\+][0-9]{2}[\)][0-9]{8,15}$/';
|
248 |
+
// +911111111111
|
249 |
+
$regexp3 = '/^[\+][0-9]{2}[0-9]{8,15}$/';
|
250 |
+
// 91-1111111111
|
251 |
+
$regexp4 = '/^[0-9]{2}[\-][0-9]{10}$/';
|
252 |
+
$regexp5 = '/^[0-9,\-]{8,15}$/';
|
253 |
+
$regexp6 = '/^[0-9,\(][0-9,\-,\(,\)][0-9,\)]{10,15}$/';
|
254 |
+
|
255 |
+
if ( ! preg_match( $regexp1, trim( $postVar ) ) && ! preg_match( $regexp2, trim( $postVar ) ) && ! preg_match( $regexp3, trim( $postVar ) ) && ! preg_match( $regexp4, trim( $postVar ) ) && ! preg_match( $regexp5, trim( $postVar ) ) && ! preg_match( $regexp6, trim( $postVar ) ) ) {
|
256 |
+
$length = strlen( trim( $postVar ) );
|
257 |
+
if ( $length ) {
|
258 |
+
$errorMsg .= $error.'<br>'; }
|
259 |
+
}
|
260 |
+
break;
|
261 |
+
}
|
262 |
+
|
263 |
+
case 'zip':{
|
264 |
+
$regexp = '/^[0-9]{6,10}$/';
|
265 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
266 |
+
$length = strlen( trim( $postVar ) );
|
267 |
+
if ( $length ) {
|
268 |
+
$errorMsg .= $error.'<br>'; }
|
269 |
+
}
|
270 |
+
break;
|
271 |
+
}
|
272 |
+
|
273 |
+
case 'uszip':{
|
274 |
+
// 12345-6789
|
275 |
+
$regexp = '/^[0-9]{5}[\-]{1}[0-9]{4}$/';
|
276 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
277 |
+
$length = strlen( trim( $postVar ) );
|
278 |
+
if ( $length ) {
|
279 |
+
$errorMsg .= $error.'<br>'; }
|
280 |
+
}
|
281 |
+
break;
|
282 |
+
}
|
283 |
+
|
284 |
+
case 'ukzip':{
|
285 |
+
|
286 |
+
$regexp = '/^[a-zA-Z]{2}[0-9]{1}[ ]{1}[0-9]{1}[a-zA-Z]{2}$/';
|
287 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
288 |
+
$length = strlen( trim( $postVar ) );
|
289 |
+
if ( $length ) {
|
290 |
+
$errorMsg .= $error.'<br>'; }
|
291 |
+
}
|
292 |
+
break;
|
293 |
+
}
|
294 |
+
|
295 |
+
case 'ssn':{
|
296 |
+
$regexp = '/^(?!000)([0-6][0-9]{2}|7([0-6][0-9]|7[012]))([ -]?)(?!00)[0-9][0-9]\3(?!0000)[0-9]{4}$/';
|
297 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
298 |
+
$length = strlen( trim( $postVar ) );
|
299 |
+
if ( $length ) {
|
300 |
+
$errorMsg .= $error.'<br>'; }
|
301 |
+
}
|
302 |
+
break;
|
303 |
+
}
|
304 |
+
|
305 |
+
case 'currency':{
|
306 |
+
$regexp1 = '/^[0-9]+\.[0-9]+$/';
|
307 |
+
$regexp2 = '/^[0-9]+$/';
|
308 |
+
if ( ! preg_match( $regexp1, trim( $postVar ) ) && ! preg_match( $regexp2, trim( $postVar ) ) ) {
|
309 |
+
$length = strlen( trim( $postVar ) );
|
310 |
+
if ( $length ) {
|
311 |
+
$errorMsg .= $error.'<br>'; }
|
312 |
+
}
|
313 |
+
break;
|
314 |
+
}
|
315 |
+
|
316 |
+
case 'email':{
|
317 |
+
if ( function_exists( 'is_email' ) ) {
|
318 |
+
|
319 |
+
if ( ! is_email( trim( $postVar ) ) ) {
|
320 |
+
|
321 |
+
$errorMsg .= $error.'<br>';
|
322 |
+
}
|
323 |
+
} else {
|
324 |
+
$regexp = '/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/';
|
325 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
326 |
+
$length = strlen( trim( $postVar ) );
|
327 |
+
if ( $length ) {
|
328 |
+
$errorMsg .= $error.'<br>'; }
|
329 |
+
}
|
330 |
+
}
|
331 |
+
break;
|
332 |
+
}
|
333 |
+
|
334 |
+
case 'url':{
|
335 |
+
$regexp = '|^http(s)?://[a-z0-9-]+(\.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$|i';
|
336 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
337 |
+
$length = strlen( trim( $postVar ) );
|
338 |
+
if ( $length ) {
|
339 |
+
$errorMsg .= $error.'<br>'; }
|
340 |
+
}
|
341 |
+
break;
|
342 |
+
}
|
343 |
+
|
344 |
+
case 'ip':{
|
345 |
+
$regexp = '/^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$/';
|
346 |
+
if ( ! preg_match( $regexp, trim( $postVar ) ) ) {
|
347 |
+
$length = strlen( trim( $postVar ) );
|
348 |
+
if ( $length ) {
|
349 |
+
$errorMsg .= $error.'<br>'; }
|
350 |
+
}
|
351 |
+
break;
|
352 |
+
}
|
353 |
+
|
354 |
+
case 'date':{
|
355 |
+
$errorMsg .= $this->validate_date( trim( $postVar ), $value, $error );
|
356 |
+
break;
|
357 |
+
}
|
358 |
+
|
359 |
+
case 'ftype':{
|
360 |
+
$errorMsg .= $this->validate_file_type( $postVar, $value, $error );
|
361 |
+
break;
|
362 |
+
}
|
363 |
+
|
364 |
+
case 'fsize':{
|
365 |
+
$errorMsg .= $this->validate_file_size( $postVar, $value, $error );
|
366 |
+
break;
|
367 |
+
}
|
368 |
+
|
369 |
+
case 'imgwh':{
|
370 |
+
$errorMsg .= $this->validate_image_height_width( $postVar, $value, $error );
|
371 |
+
break;
|
372 |
+
}
|
373 |
+
|
374 |
+
case 'custom':{
|
375 |
+
if ( ! preg_match( $value, trim( $postVar ) ) ) {
|
376 |
+
$length = strlen( trim( $postVar ) );
|
377 |
+
if ( $length ) {
|
378 |
+
$errorMsg .= $error.'<br>'; }
|
379 |
+
}
|
380 |
+
break;
|
381 |
+
}
|
382 |
+
}
|
383 |
+
|
384 |
+
if ( $errorMsg ) {
|
385 |
+
$errordata[ $name ] = $error; }
|
386 |
+
}
|
387 |
+
|
388 |
+
if ( $errordata ) {
|
389 |
+
return $errordata;
|
390 |
+
} else { return false; }
|
391 |
+
}
|
392 |
+
/**
|
393 |
+
* Validate data input.
|
394 |
+
* @param string $postVar Element name.
|
395 |
+
* @param string $value Element value.
|
396 |
+
* @param string $error Error message.
|
397 |
+
* @return string Error message if not valid.
|
398 |
+
*/
|
399 |
+
function validate_date($postVar, $value, $error) {
|
400 |
+
|
401 |
+
$errorMsg = '';
|
402 |
+
|
403 |
+
$length = strlen( trim( $postVar ) );
|
404 |
+
if ( $length ) {
|
405 |
+
|
406 |
+
if ( isset( $value ) ) {
|
407 |
+
|
408 |
+
$found = strpos( $value, ',' );
|
409 |
+
if ( false === $found ) {
|
410 |
+
$options[0] = $value;
|
411 |
+
} else {
|
412 |
+
$options = explode( ',', $value );
|
413 |
+
}
|
414 |
+
} else {
|
415 |
+
|
416 |
+
$options[0] = 'dd-mm-yyyy';
|
417 |
+
}
|
418 |
+
|
419 |
+
$patternMatch = 0;
|
420 |
+
foreach ( $options as $opt ) {
|
421 |
+
|
422 |
+
$pos1 = strpos( $opt, '-' );
|
423 |
+
$pos2 = strpos( $opt, '/' );
|
424 |
+
$pos3 = strpos( $opt, '.' );
|
425 |
+
|
426 |
+
if ( false !== $pos1 ) {
|
427 |
+
if ( 2 == $pos1 ) {
|
428 |
+
if ( strlen( $opt ) == 8 ) {
|
429 |
+
$regexp = '/^[0-9]{2}[\-][0-9]{2}[\-][0-9]{2}$/';
|
430 |
+
} else { $regexp = '/^[0-9]{2}[\-][0-9]{2}[\-][0-9]{4}$/'; }
|
431 |
+
}
|
432 |
+
if ( 4 == $pos1 ) {
|
433 |
+
$regexp = '/^[0-9]{4}[\-][0-9]{2}[\-][0-9]{2}$/'; }
|
434 |
+
}
|
435 |
+
|
436 |
+
if ( false !== $pos2 ) {
|
437 |
+
if ( 2 == $pos2 ) {
|
438 |
+
if ( strlen( $opt ) == 8 ) {
|
439 |
+
$regexp = '/^[0-9]{2}[\/][0-9]{2}[\/][0-9]{2}$/';
|
440 |
+
} else { $regexp = '/^[0-9]{2}[\/][0-9]{2}[\/][0-9]{4}$/'; }
|
441 |
+
}
|
442 |
+
if ( 4 == $pos2 ) {
|
443 |
+
$regexp = '/^[0-9]{4}[\/][0-9]{2}[\/][0-9]{2}$/'; }
|
444 |
+
}
|
445 |
+
|
446 |
+
if ( false !== $pos3 ) {
|
447 |
+
if ( 2 == $pos3 ) {
|
448 |
+
if ( 8 == strlen( $opt ) ) {
|
449 |
+
$regexp = '/^[0-9]{2}[\.][0-9]{2}[\.][0-9]{2}$/';
|
450 |
+
} else { $regexp = '/^[0-9]{2}[\.][0-9]{2}[\.][0-9]{4}$/'; }
|
451 |
+
}
|
452 |
+
if ( 4 == $pos3 ) {
|
453 |
+
$regexp = '/^[0-9]{4}[\.][0-9]{2}[\.][0-9]{2}$/'; }
|
454 |
+
}
|
455 |
+
|
456 |
+
if ( preg_match( $regexp, $postVar ) ) {
|
457 |
+
|
458 |
+
$patternMatch = 1;
|
459 |
+
if ( (isset( $pos1 ) && 2 == $pos1 ) || (isset( $pos2 ) && 2 == $pos2 ) || (isset( $pos3 ) && 2 == $pos3 ) ) {
|
460 |
+
$str1 = substr( $opt, 0, 2 );
|
461 |
+
$str2 = substr( $opt, 3, 2 );
|
462 |
+
|
463 |
+
if ( 'dd' == $str1 ) {
|
464 |
+
$DD = substr( $postVar, 0, 2 );
|
465 |
+
$MM = substr( $postVar, 3, 2 );
|
466 |
+
$YY = substr( $postVar, 6 );
|
467 |
+
}
|
468 |
+
if ( 'mm' == $str1 ) {
|
469 |
+
$MM = substr( $postVar, 0, 2 );
|
470 |
+
$DD = substr( $postVar, 3, 2 );
|
471 |
+
$YY = substr( $postVar, 6 );
|
472 |
+
}
|
473 |
+
if ( 'yy' == $str1 ) {
|
474 |
+
if ( 'mm' == $str2 ) {
|
475 |
+
$YY = substr( $postVar, 0, 2 );
|
476 |
+
$MM = substr( $postVar, 3, 2 );
|
477 |
+
$DD = substr( $postVar, 6 );
|
478 |
+
} else {
|
479 |
+
$MM = substr( $postVar, 0, 2 );
|
480 |
+
$DD = substr( $postVar, 3, 2 );
|
481 |
+
$YY = substr( $postVar, 6 );
|
482 |
+
}
|
483 |
+
}
|
484 |
+
}
|
485 |
+
|
486 |
+
if ( (isset( $pos1 ) && 4 == $pos1) || (isset( $pos2 ) && 4 == $pos2) || (isset( $pos3 ) && 4 == $pos3) ) {
|
487 |
+
$str = substr( $opt, 5, 2 );
|
488 |
+
|
489 |
+
if ( 'dd' == $str ) {
|
490 |
+
$YY = substr( $postVar, 0, 4 );
|
491 |
+
$DD = substr( $postVar, 6, 2 );
|
492 |
+
$MM = substr( $postVar, 8, 2 );
|
493 |
+
}
|
494 |
+
if ( 'mm' == $str ) {
|
495 |
+
$YY = substr( $postVar, 0, 4 );
|
496 |
+
$MM = substr( $postVar, 6, 2 );
|
497 |
+
$DD = substr( $postVar, 6, 2 );
|
498 |
+
}
|
499 |
+
}
|
500 |
+
|
501 |
+
if ( 0 == $DD || 0 == $MM || 0 == $YY ) {
|
502 |
+
$errorMsg .= 'Invalid Date...<br>';
|
503 |
+
}
|
504 |
+
|
505 |
+
if ( $MM <= 12 ) {
|
506 |
+
switch ( $MM ) {
|
507 |
+
case 4:
|
508 |
+
case 6:
|
509 |
+
case 9:
|
510 |
+
case 11:
|
511 |
+
if ( $DD > 30 ) {
|
512 |
+
$errorMsg .= 'Selected month has maximum 30 days.<br>';
|
513 |
+
}
|
514 |
+
default:
|
515 |
+
if ( $DD > 31 ) {
|
516 |
+
$errorMsg .= 'Selected month has maximum 31 days.<br>';
|
517 |
+
}
|
518 |
+
break;
|
519 |
+
}
|
520 |
+
}
|
521 |
+
|
522 |
+
if ( ($YY % 4) == 0 ) {
|
523 |
+
if ( (2 == $MM) && ($DD > 29) ) {
|
524 |
+
$errorMsg .= 'Invalid days in February for leap year.<br>';
|
525 |
+
}
|
526 |
+
} else {
|
527 |
+
if ( (2 == $MM) && ($DD > 28) ) {
|
528 |
+
$errorMsg .= 'Invalid days in February for non leap year.<br>';
|
529 |
+
}
|
530 |
+
}
|
531 |
+
}
|
532 |
+
|
533 |
+
if ( $patternMatch ) { break; }
|
534 |
+
}
|
535 |
+
|
536 |
+
if ( ! $patternMatch ) { $errorMsg .= $error.'<br>'; }
|
537 |
+
}
|
538 |
+
return $errorMsg;
|
539 |
+
}
|
540 |
+
/**
|
541 |
+
* Validate file type.
|
542 |
+
* @param string $postVar Element name.
|
543 |
+
* @param string $value Element value.
|
544 |
+
* @param string $error Error message.
|
545 |
+
* @return string Error message.
|
546 |
+
*/
|
547 |
+
function validate_file_type($postVar, $value, $error) {
|
548 |
+
|
549 |
+
$errorMsg = '';
|
550 |
+
if ( isset( $value ) ) {
|
551 |
+
$found = strpos( $value, ',' );
|
552 |
+
if ( false === $found ) {
|
553 |
+
$options[0] = $value;
|
554 |
+
} else {
|
555 |
+
$options = explode( ',', $value );
|
556 |
+
}
|
557 |
+
}
|
558 |
+
|
559 |
+
if ( is_array( $postVar['name'] ) ) {
|
560 |
+
$totalFiles = count( $postVar['name'] );
|
561 |
+
|
562 |
+
for ( $i = 0; $i < $totalFiles; $i++ ) {
|
563 |
+
if ( $postVar['name'][ $i ] ) {
|
564 |
+
$fileTypeMatch = 0;
|
565 |
+
foreach ( $options as $id => $type ) {
|
566 |
+
$typeArray = $this->available_file_types( $type );
|
567 |
+
if ( in_array( $postVar['type'][ $i ], $typeArray ) ) {
|
568 |
+
$fileTypeMatch = 1;
|
569 |
+
}
|
570 |
+
if ( $fileTypeMatch ) { break; }
|
571 |
+
}
|
572 |
+
|
573 |
+
if ( ! $fileTypeMatch ) {
|
574 |
+
$errorMsg .= $error.' ('.$postVar['name'][ $i ].')<br>';
|
575 |
+
}
|
576 |
+
}
|
577 |
+
}
|
578 |
+
} else {
|
579 |
+
if ( $postVar['name'] ) {
|
580 |
+
$fileTypeMatch = 0;
|
581 |
+
foreach ( $options as $id => $type ) {
|
582 |
+
$typeArray = $this->available_file_types( $type );
|
583 |
+
if ( in_array( $postVar['type'], $typeArray ) ) {
|
584 |
+
$fileTypeMatch = 1;
|
585 |
+
}
|
586 |
+
if ( $fileTypeMatch ) { break; }
|
587 |
+
}
|
588 |
+
|
589 |
+
if ( ! $fileTypeMatch ) {
|
590 |
+
$errorMsg .= $error.' ('.$postVar['name'].')<br>';
|
591 |
+
}
|
592 |
+
}
|
593 |
+
}
|
594 |
+
|
595 |
+
return $errorMsg;
|
596 |
+
}
|
597 |
+
/**
|
598 |
+
* Available file valid extensions.
|
599 |
+
* @param string $ext Extension.
|
600 |
+
* @return array File types.
|
601 |
+
*/
|
602 |
+
function available_file_types($ext) {
|
603 |
+
|
604 |
+
switch ( $ext ) {
|
605 |
+
|
606 |
+
case 'txt':
|
607 |
+
$type[0] = 'text/plain';
|
608 |
+
break;
|
609 |
+
|
610 |
+
case 'xml':
|
611 |
+
$type[0] = 'text/xml';
|
612 |
+
$type[1] = 'application/xml';
|
613 |
+
break;
|
614 |
+
|
615 |
+
case 'csv':
|
616 |
+
$type[0] = 'text/x-comma-separated-values';
|
617 |
+
$type[1] = 'application/octet-stream';
|
618 |
+
$type[2] = 'text/plain';
|
619 |
+
break;
|
620 |
+
|
621 |
+
case 'zip':
|
622 |
+
$type[0] = 'application/zip';
|
623 |
+
break;
|
624 |
+
|
625 |
+
case 'tar':
|
626 |
+
$type[0] = 'application/x-gzip';
|
627 |
+
break;
|
628 |
+
|
629 |
+
case 'ctar':
|
630 |
+
$type[0] = 'application/x-compressed-tar';
|
631 |
+
break;
|
632 |
+
|
633 |
+
case 'pdf':
|
634 |
+
$type[0] = 'application/pdf';
|
635 |
+
break;
|
636 |
+
|
637 |
+
case 'doc':
|
638 |
+
$type[0] = 'application/msword';
|
639 |
+
$type[1] = 'application/octet-stream';
|
640 |
+
break;
|
641 |
+
|
642 |
+
case 'xls':
|
643 |
+
$type[0] = 'application/vnd.ms-excel';
|
644 |
+
$type[1] = 'application/vnd.oasis.opendocument.spreadsheet';
|
645 |
+
break;
|
646 |
+
|
647 |
+
case 'ppt':
|
648 |
+
$type[0] = 'application/vnd.ms-powerpoint';
|
649 |
+
break;
|
650 |
+
|
651 |
+
case 'jpg':
|
652 |
+
$type[0] = 'image/jpg';
|
653 |
+
$type[1] = 'image/jpeg';
|
654 |
+
$type[2] = 'image/pjpeg';
|
655 |
+
break;
|
656 |
+
|
657 |
+
case 'gif':
|
658 |
+
$type[0] = 'image/gif';
|
659 |
+
break;
|
660 |
+
|
661 |
+
case 'png':
|
662 |
+
$type[0] = 'image/png';
|
663 |
+
break;
|
664 |
+
|
665 |
+
case 'bmp':
|
666 |
+
$type[0] = 'image/bmp';
|
667 |
+
break;
|
668 |
+
|
669 |
+
case 'icon':
|
670 |
+
$type[0] = 'image/x-ico';
|
671 |
+
break;
|
672 |
+
|
673 |
+
case 'font':
|
674 |
+
$type[0] = 'application/x-font-ttf';
|
675 |
+
break;
|
676 |
+
}
|
677 |
+
|
678 |
+
return $type;
|
679 |
+
}
|
680 |
+
/**
|
681 |
+
* Validate file size.
|
682 |
+
* @param string $postVar Element name.
|
683 |
+
* @param string $value Element value.
|
684 |
+
* @param string $error Error message.
|
685 |
+
* @return string Error message.
|
686 |
+
*/
|
687 |
+
function validate_file_size($postVar, $value, $error) {
|
688 |
+
|
689 |
+
$errorMsg = '';
|
690 |
+
if ( is_array( $postVar['name'] ) ) {
|
691 |
+
$totalFiles = count( $postVar['name'] );
|
692 |
+
|
693 |
+
for ( $i = 0; $i < $totalFiles; $i++ ) {
|
694 |
+
if ( $postVar['name'][ $i ] ) {
|
695 |
+
if ( $postVar['size'][ $i ] > $value ) {
|
696 |
+
$errorMsg .= $error.' ('.$postVar['name'][ $i ].')<br>';
|
697 |
+
}
|
698 |
+
}
|
699 |
+
}
|
700 |
+
} else {
|
701 |
+
if ( $postVar['size'] > $value ) {
|
702 |
+
$errorMsg .= $error.' ('.$postVar['name'].')<br>';
|
703 |
+
}
|
704 |
+
}
|
705 |
+
|
706 |
+
return $errorMsg;
|
707 |
+
}
|
708 |
+
/**
|
709 |
+
* Validate image height and width.
|
710 |
+
* @param string $postVar Element name.
|
711 |
+
* @param string $value Element value.
|
712 |
+
* @param string $error Error message.
|
713 |
+
* @return string Error message.
|
714 |
+
*/
|
715 |
+
function validate_image_height_width($postVar, $value, $error) {
|
716 |
+
|
717 |
+
$errorMsg = '';
|
718 |
+
if ( isset( $value ) ) {
|
719 |
+
$found = strpos( $value, ',' );
|
720 |
+
if ( false === $found ) {
|
721 |
+
$options[0] = $value;
|
722 |
+
} else {
|
723 |
+
$options = explode( ',', $value );
|
724 |
+
$W = $options[0];
|
725 |
+
$H = $options[1];
|
726 |
+
}
|
727 |
+
}
|
728 |
+
|
729 |
+
if ( is_array( $postVar['name'] ) ) {
|
730 |
+
|
731 |
+
$totalFiles = count( $postVar['name'] );
|
732 |
+
|
733 |
+
for ( $i = 0; $i < $totalFiles; $i++ ) {
|
734 |
+
|
735 |
+
if ( $postVar['name'][ $i ] ) {
|
736 |
+
|
737 |
+
list($width, $height) = getimagesize( $postVar['tmp_name'][ $i ] );
|
738 |
+
|
739 |
+
if ( ($height > $W || $width > $H) && $postVar['tmp_name'][ $i ] ) {
|
740 |
+
$errorMsg .= $error.' ('.$postVar['name'][ $i ].')<br>';
|
741 |
+
}
|
742 |
+
}
|
743 |
+
}
|
744 |
+
} else {
|
745 |
+
|
746 |
+
list($width, $height) = getimagesize( $postVar['tmp_name'] );
|
747 |
+
if ( ($height < $H || $width < $W) && $postVar['tmp_name'] ) {
|
748 |
+
$errorMsg .= $error.' ('.$postVar['name'].')<br>';
|
749 |
+
}
|
750 |
+
}
|
751 |
+
|
752 |
+
return $errorMsg;
|
753 |
+
}
|
754 |
+
/**
|
755 |
+
* Available phone type.
|
756 |
+
* @param string $country Country name.
|
757 |
+
* @return array Phone type expressions.
|
758 |
+
*/
|
759 |
+
function available_phone_type($country) {
|
760 |
+
|
761 |
+
switch ( $country ) {
|
762 |
+
|
763 |
+
case 'in': // India.
|
764 |
+
$type[0] = '/^[0-9]{6,10}$/';
|
765 |
+
// (+91)[022]111111.
|
766 |
+
$type[1] = '/^[\(][\+][0-9]{2}[\)][\[][0-9]{3,5}[\]][0-9]{6,10}$/';
|
767 |
+
// +91022111111.
|
768 |
+
$type[2] = '/^[\+][0-9]{2}[0-9]{3,5}[0-9]{6,10}$/';
|
769 |
+
// 91-111111.
|
770 |
+
$type[3] = '/^[0-9]{2}[\-][0-9]{6,10}$/';
|
771 |
+
break;
|
772 |
+
|
773 |
+
case 'br': // Brazil.
|
774 |
+
$type[0] = '/^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$/';
|
775 |
+
break;
|
776 |
+
|
777 |
+
case 'fr': // France.
|
778 |
+
$type[0] = '/^([0-9]{2})?(\([0-9]{2})\)([0-9]{3}|[0-9]{4})-[0-9]{4}$/';
|
779 |
+
break;
|
780 |
+
|
781 |
+
case 'us': // US.
|
782 |
+
$type[0] = '/^[\(][0-9]{3}[\)][0-9]{3}[\-][0-9]{4}$/';
|
783 |
+
break;
|
784 |
+
|
785 |
+
case 'sw': // Swedish.
|
786 |
+
$type[0] = '/^(([+][0-9]{2}[ ][1-9][0-9]{0,2}[ ])|([0][0-9]{1,3}[-]))(([0-9]{2}([ ][0-9]{2}){2})|([0-9]{3}([ ][0-9]{3})*([ ][0-9]{2})+))$/';
|
787 |
+
break;
|
788 |
+
}
|
789 |
+
|
790 |
+
return $type;
|
791 |
+
}
|
792 |
+
}
|
793 |
+
}
|
lang/wp-google-map-plugin-en_US.mo
ADDED
Binary file
|
lang/wp-google-map-plugin-en_US.po
ADDED
@@ -0,0 +1,937 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
msgid ""
|
2 |
+
msgstr ""
|
3 |
+
"Project-Id-Version: wp google map lite version 3.0.0\n"
|
4 |
+
"Report-Msgid-Bugs-To: \n"
|
5 |
+
"POT-Creation-Date: 2015-08-22 12:56+0530\n"
|
6 |
+
"PO-Revision-Date: 2015-08-22 12:56+0530\n"
|
7 |
+
"Last-Translator: Flipper Code <hello@flippercode.com>\n"
|
8 |
+
"Language-Team: \n"
|
9 |
+
"Language: en_US\n"
|
10 |
+
"MIME-Version: 1.0\n"
|
11 |
+
"Content-Type: text/plain; charset=UTF-8\n"
|
12 |
+
"Content-Transfer-Encoding: 8bit\n"
|
13 |
+
"X-Poedit-KeywordsList: _;gettext;gettext_noop;__;_e\n"
|
14 |
+
"X-Poedit-Basepath: .\n"
|
15 |
+
"X-Poedit-SourceCharset: UTF-8\n"
|
16 |
+
"X-Generator: Poedit 1.6.9\n"
|
17 |
+
"X-Poedit-SearchPath-0: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-"
|
18 |
+
"content/plugins/wp-google-map-plugin\n"
|
19 |
+
|
20 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.controller.php:140
|
21 |
+
msgid " updated successfully."
|
22 |
+
msgstr ""
|
23 |
+
|
24 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.controller.php:141
|
25 |
+
msgid " added successfully. You can manage your "
|
26 |
+
msgstr ""
|
27 |
+
|
28 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.map-widget.php:25
|
29 |
+
msgid "A widget to display google maps"
|
30 |
+
msgstr ""
|
31 |
+
|
32 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.map-widget.php:71
|
33 |
+
msgid "Title:"
|
34 |
+
msgstr ""
|
35 |
+
|
36 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.map-widget.php:77
|
37 |
+
msgid "Select Your Map:"
|
38 |
+
msgstr ""
|
39 |
+
|
40 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.map-widget.php:80
|
41 |
+
msgid "Select map"
|
42 |
+
msgstr ""
|
43 |
+
|
44 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.tabular.php:222
|
45 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.tabular.php:421
|
46 |
+
msgid "Selected "
|
47 |
+
msgstr ""
|
48 |
+
|
49 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.tabular.php:252
|
50 |
+
msgid "Manage "
|
51 |
+
msgstr ""
|
52 |
+
|
53 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.tabular.php:585
|
54 |
+
msgid "Filter"
|
55 |
+
msgstr ""
|
56 |
+
|
57 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.tabular.php:645
|
58 |
+
msgid "Select Page"
|
59 |
+
msgstr ""
|
60 |
+
|
61 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.template.php:472
|
62 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/views/form.php:63
|
63 |
+
msgid "Choose Marker Image"
|
64 |
+
msgstr ""
|
65 |
+
|
66 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/core/class.template.php:479
|
67 |
+
msgid "Remove Marker Image"
|
68 |
+
msgstr ""
|
69 |
+
|
70 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/google-maps.php:206
|
71 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/google-maps.php:207
|
72 |
+
msgid "WP Google Map"
|
73 |
+
msgstr ""
|
74 |
+
|
75 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/google-maps.php:424
|
76 |
+
msgid "Choose Icons"
|
77 |
+
msgstr ""
|
78 |
+
|
79 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/google-maps.php:494
|
80 |
+
msgid "Choose icon"
|
81 |
+
msgstr ""
|
82 |
+
|
83 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/google-maps.php:494
|
84 |
+
msgid "Search icons"
|
85 |
+
msgstr ""
|
86 |
+
|
87 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/google-maps.php:521
|
88 |
+
msgid "Insert into Post"
|
89 |
+
msgstr ""
|
90 |
+
|
91 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/model.group_map.php:41
|
92 |
+
msgid "Add Marker Category"
|
93 |
+
msgstr ""
|
94 |
+
|
95 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/model.group_map.php:42
|
96 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:194
|
97 |
+
msgid "Marker Categories"
|
98 |
+
msgstr ""
|
99 |
+
|
100 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/model.group_map.php:116
|
101 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/model.location.php:170
|
102 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/model.location.php:365
|
103 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/model.map.php:167
|
104 |
+
msgid "Something went wrong. Please try again."
|
105 |
+
msgstr ""
|
106 |
+
|
107 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/model.group_map.php:118
|
108 |
+
msgid "Category updated successfully"
|
109 |
+
msgstr ""
|
110 |
+
|
111 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/model.group_map.php:120
|
112 |
+
msgid "Category added successfully."
|
113 |
+
msgstr ""
|
114 |
+
|
115 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/views/form.php:32
|
116 |
+
msgid "Marker Category"
|
117 |
+
msgstr ""
|
118 |
+
|
119 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/views/form.php:32
|
120 |
+
msgid "Manage Marker Categories"
|
121 |
+
msgstr ""
|
122 |
+
|
123 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/views/form.php:42
|
124 |
+
msgid "Parent Category"
|
125 |
+
msgstr ""
|
126 |
+
|
127 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/views/form.php:44
|
128 |
+
msgid "Assign parent category if any."
|
129 |
+
msgstr ""
|
130 |
+
|
131 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/views/form.php:51
|
132 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/views/form.php:56
|
133 |
+
msgid "Marker Category Title"
|
134 |
+
msgstr ""
|
135 |
+
|
136 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/group_map/views/form.php:54
|
137 |
+
msgid "Enter here marker category title."
|
138 |
+
msgstr ""
|
139 |
+
|
140 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/model.location.php:44
|
141 |
+
msgid "Add Location"
|
142 |
+
msgstr ""
|
143 |
+
|
144 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/model.location.php:45
|
145 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:41
|
146 |
+
msgid "Manage Locations"
|
147 |
+
msgstr ""
|
148 |
+
|
149 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/model.location.php:172
|
150 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/model.location.php:367
|
151 |
+
msgid "Location updated successfully"
|
152 |
+
msgstr ""
|
153 |
+
|
154 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/model.location.php:174
|
155 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/model.location.php:369
|
156 |
+
msgid "Location added successfully."
|
157 |
+
msgstr ""
|
158 |
+
|
159 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/model.location.php:258
|
160 |
+
msgid "Please select file to be imported."
|
161 |
+
msgstr ""
|
162 |
+
|
163 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/model.location.php:260
|
164 |
+
msgid "Please upload a valid file"
|
165 |
+
msgstr ""
|
166 |
+
|
167 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:41
|
168 |
+
msgid "Location Information"
|
169 |
+
msgstr ""
|
170 |
+
|
171 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:43
|
172 |
+
msgid "Location Title"
|
173 |
+
msgstr ""
|
174 |
+
|
175 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:45
|
176 |
+
msgid "Enter here the location title."
|
177 |
+
msgstr ""
|
178 |
+
|
179 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:47
|
180 |
+
msgid "Enter Location Title"
|
181 |
+
msgstr ""
|
182 |
+
|
183 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:50
|
184 |
+
msgid "Location Address"
|
185 |
+
msgstr ""
|
186 |
+
|
187 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:52
|
188 |
+
msgid "Enter here the address. Google auto suggest helps you to choose one."
|
189 |
+
msgstr ""
|
190 |
+
|
191 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:55
|
192 |
+
msgid "Type Location Address"
|
193 |
+
msgstr ""
|
194 |
+
|
195 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:59
|
196 |
+
msgid "Latitude and Longitude"
|
197 |
+
msgstr ""
|
198 |
+
|
199 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:62
|
200 |
+
msgid "Enter here the latitude."
|
201 |
+
msgstr ""
|
202 |
+
|
203 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:65
|
204 |
+
msgid "Enter the Latitude"
|
205 |
+
msgstr ""
|
206 |
+
|
207 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:72
|
208 |
+
msgid "Enter here the longitude."
|
209 |
+
msgstr ""
|
210 |
+
|
211 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:75
|
212 |
+
msgid "Enter the Longitude"
|
213 |
+
msgstr ""
|
214 |
+
|
215 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:80
|
216 |
+
msgid "City and State"
|
217 |
+
msgstr ""
|
218 |
+
|
219 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:83
|
220 |
+
msgid "Enter here the city."
|
221 |
+
msgstr ""
|
222 |
+
|
223 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:85
|
224 |
+
msgid "City"
|
225 |
+
msgstr ""
|
226 |
+
|
227 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:92
|
228 |
+
msgid "Enter here the state."
|
229 |
+
msgstr ""
|
230 |
+
|
231 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:94
|
232 |
+
msgid "State"
|
233 |
+
msgstr ""
|
234 |
+
|
235 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:99
|
236 |
+
msgid "Country and Postal Code"
|
237 |
+
msgstr ""
|
238 |
+
|
239 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:102
|
240 |
+
msgid "Enter here the country."
|
241 |
+
msgstr ""
|
242 |
+
|
243 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:104
|
244 |
+
msgid "Country"
|
245 |
+
msgstr ""
|
246 |
+
|
247 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:111
|
248 |
+
msgid "Enter here the postal code."
|
249 |
+
msgstr ""
|
250 |
+
|
251 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:113
|
252 |
+
msgid "Postal Code"
|
253 |
+
msgstr ""
|
254 |
+
|
255 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:119
|
256 |
+
msgid "Current Location"
|
257 |
+
msgstr ""
|
258 |
+
|
259 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:126
|
260 |
+
msgid "On Click"
|
261 |
+
msgstr ""
|
262 |
+
|
263 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:127
|
264 |
+
msgid "Display Infowindow"
|
265 |
+
msgstr ""
|
266 |
+
|
267 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:127
|
268 |
+
msgid "Redirect"
|
269 |
+
msgstr ""
|
270 |
+
|
271 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:135
|
272 |
+
msgid "Infowindow Message"
|
273 |
+
msgstr ""
|
274 |
+
|
275 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:137
|
276 |
+
msgid "Enter here the infoWindow message."
|
277 |
+
msgstr ""
|
278 |
+
|
279 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:146
|
280 |
+
msgid "Redirect Url"
|
281 |
+
msgstr ""
|
282 |
+
|
283 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:148
|
284 |
+
msgid "Enter here the redirect url. e.g http://www.flippercode.com"
|
285 |
+
msgstr ""
|
286 |
+
|
287 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:156
|
288 |
+
msgid "YES"
|
289 |
+
msgstr ""
|
290 |
+
|
291 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:156
|
292 |
+
msgid "NO"
|
293 |
+
msgstr ""
|
294 |
+
|
295 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:157
|
296 |
+
msgid "Open new tab"
|
297 |
+
msgstr ""
|
298 |
+
|
299 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:159
|
300 |
+
msgid "Open a new window tab."
|
301 |
+
msgstr ""
|
302 |
+
|
303 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:168
|
304 |
+
msgid "Infowindow Default Open"
|
305 |
+
msgstr ""
|
306 |
+
|
307 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:172
|
308 |
+
msgid "Check to enable infowindow default open."
|
309 |
+
msgstr ""
|
310 |
+
|
311 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:176
|
312 |
+
msgid "Marker Draggable"
|
313 |
+
msgstr ""
|
314 |
+
|
315 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:180
|
316 |
+
msgid "Check if you want to allow visitors to drag the marker."
|
317 |
+
msgstr ""
|
318 |
+
|
319 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:184
|
320 |
+
msgid "Marker Animation"
|
321 |
+
msgstr ""
|
322 |
+
|
323 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:186
|
324 |
+
msgid "Please select marker animation."
|
325 |
+
msgstr ""
|
326 |
+
|
327 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:233
|
328 |
+
msgid "You don't have categorie(s)."
|
329 |
+
msgstr ""
|
330 |
+
|
331 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/location/views/form.php:240
|
332 |
+
msgid "Save Location"
|
333 |
+
msgstr ""
|
334 |
+
|
335 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/model.map.php:40
|
336 |
+
msgid "Add Map"
|
337 |
+
msgstr ""
|
338 |
+
|
339 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/model.map.php:41
|
340 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/form.php:32
|
341 |
+
msgid "Manage Maps"
|
342 |
+
msgstr ""
|
343 |
+
|
344 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/model.map.php:169
|
345 |
+
msgid "Map updated successfully"
|
346 |
+
msgstr ""
|
347 |
+
|
348 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/model.map.php:171
|
349 |
+
msgid "Map added successfully."
|
350 |
+
msgstr ""
|
351 |
+
|
352 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/model.map.php:198
|
353 |
+
msgid "Copy"
|
354 |
+
msgstr ""
|
355 |
+
|
356 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/form.php:32
|
357 |
+
msgid "Map Information"
|
358 |
+
msgstr ""
|
359 |
+
|
360 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/form.php:41
|
361 |
+
msgid "Save Map"
|
362 |
+
msgstr ""
|
363 |
+
|
364 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:24
|
365 |
+
msgid "Control Position(s) Settings"
|
366 |
+
msgstr ""
|
367 |
+
|
368 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:29
|
369 |
+
msgid "Pan Control"
|
370 |
+
msgstr ""
|
371 |
+
|
372 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:31
|
373 |
+
msgid "Please select position of pan control."
|
374 |
+
msgstr ""
|
375 |
+
|
376 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:35
|
377 |
+
msgid "Zoom Control"
|
378 |
+
msgstr ""
|
379 |
+
|
380 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:37
|
381 |
+
msgid "Please select position of zoom control."
|
382 |
+
msgstr ""
|
383 |
+
|
384 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:42
|
385 |
+
msgid "Zoom Control Style"
|
386 |
+
msgstr ""
|
387 |
+
|
388 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:44
|
389 |
+
msgid "Please select style of zoom control."
|
390 |
+
msgstr ""
|
391 |
+
|
392 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:49
|
393 |
+
msgid "Map Type Control"
|
394 |
+
msgstr ""
|
395 |
+
|
396 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:52
|
397 |
+
msgid "Please select position of map type control."
|
398 |
+
msgstr ""
|
399 |
+
|
400 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:58
|
401 |
+
msgid "Map Type Control Style"
|
402 |
+
msgstr ""
|
403 |
+
|
404 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:60
|
405 |
+
msgid "Please select style of map type control."
|
406 |
+
msgstr ""
|
407 |
+
|
408 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:65
|
409 |
+
msgid "Street View Control"
|
410 |
+
msgstr ""
|
411 |
+
|
412 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-position-style-form.php:67
|
413 |
+
msgid "Please select position of street view control."
|
414 |
+
msgstr ""
|
415 |
+
|
416 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:8
|
417 |
+
msgid "Control Setting"
|
418 |
+
msgstr ""
|
419 |
+
|
420 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:13
|
421 |
+
msgid "Turn Off Pan Control"
|
422 |
+
msgstr ""
|
423 |
+
|
424 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:17
|
425 |
+
msgid "Please check to disable pan control."
|
426 |
+
msgstr ""
|
427 |
+
|
428 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:21
|
429 |
+
msgid "Turn Off Zoom Control"
|
430 |
+
msgstr ""
|
431 |
+
|
432 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:25
|
433 |
+
msgid "Please check to disable zoom control."
|
434 |
+
msgstr ""
|
435 |
+
|
436 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:29
|
437 |
+
msgid "Turn Off Map Type Control"
|
438 |
+
msgstr ""
|
439 |
+
|
440 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:33
|
441 |
+
msgid "Please check to disable map type control."
|
442 |
+
msgstr ""
|
443 |
+
|
444 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:37
|
445 |
+
msgid "Turn Off Scale Control"
|
446 |
+
msgstr ""
|
447 |
+
|
448 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:41
|
449 |
+
msgid "Please check to disable scale control."
|
450 |
+
msgstr ""
|
451 |
+
|
452 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:45
|
453 |
+
msgid "Turn Off Street View Control"
|
454 |
+
msgstr ""
|
455 |
+
|
456 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:49
|
457 |
+
msgid "Please check to disable street view control."
|
458 |
+
msgstr ""
|
459 |
+
|
460 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:53
|
461 |
+
msgid "Turn Off Overview Map Control"
|
462 |
+
msgstr ""
|
463 |
+
|
464 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/control-setting-form.php:57
|
465 |
+
msgid "Please check to disable overview map control."
|
466 |
+
msgstr ""
|
467 |
+
|
468 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:9
|
469 |
+
msgid "Map Title"
|
470 |
+
msgstr ""
|
471 |
+
|
472 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:11
|
473 |
+
msgid "Enter here the map title."
|
474 |
+
msgstr ""
|
475 |
+
|
476 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:16
|
477 |
+
msgid "Map Width"
|
478 |
+
msgstr ""
|
479 |
+
|
480 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:18
|
481 |
+
msgid "Enter here the map width in pixel. Leave it blank for 100% width."
|
482 |
+
msgstr ""
|
483 |
+
|
484 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:22
|
485 |
+
msgid "Map Height"
|
486 |
+
msgstr ""
|
487 |
+
|
488 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:24
|
489 |
+
msgid "Enter here the map height in pixel."
|
490 |
+
msgstr ""
|
491 |
+
|
492 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:96
|
493 |
+
msgid "Map Zoom Level"
|
494 |
+
msgstr ""
|
495 |
+
|
496 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:98
|
497 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:105
|
498 |
+
msgid "Available options 1 to 19."
|
499 |
+
msgstr ""
|
500 |
+
|
501 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:103
|
502 |
+
msgid "Map Type"
|
503 |
+
msgstr ""
|
504 |
+
|
505 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:110
|
506 |
+
msgid "Turn Off Scrolling Wheel"
|
507 |
+
msgstr ""
|
508 |
+
|
509 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:114
|
510 |
+
msgid "Please check to disable scroll wheel zoom."
|
511 |
+
msgstr ""
|
512 |
+
|
513 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:118
|
514 |
+
msgid "Map Draggable"
|
515 |
+
msgstr ""
|
516 |
+
|
517 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:122
|
518 |
+
msgid "Please check to disable map draggable."
|
519 |
+
msgstr ""
|
520 |
+
|
521 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:127
|
522 |
+
msgid "45° Imagery"
|
523 |
+
msgstr ""
|
524 |
+
|
525 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/general-setting-form.php:131
|
526 |
+
msgid ""
|
527 |
+
"Apply 45° Imagery ? (only available for map type SATELLITE and HYBRID)."
|
528 |
+
msgstr ""
|
529 |
+
|
530 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/layers-form.php:9
|
531 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/layers-form.php:14
|
532 |
+
msgid "Layers Settings"
|
533 |
+
msgstr ""
|
534 |
+
|
535 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/layers-form.php:22
|
536 |
+
msgid "Traffic Layer"
|
537 |
+
msgstr ""
|
538 |
+
|
539 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/layers-form.php:26
|
540 |
+
msgid "Please check to enable traffic Layer."
|
541 |
+
msgstr ""
|
542 |
+
|
543 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/layers-form.php:31
|
544 |
+
msgid "Transit Layer"
|
545 |
+
msgstr ""
|
546 |
+
|
547 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/layers-form.php:35
|
548 |
+
msgid "Please check to enable Transit Layer."
|
549 |
+
msgstr ""
|
550 |
+
|
551 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/layers-form.php:41
|
552 |
+
msgid "Bicycling Layer"
|
553 |
+
msgstr ""
|
554 |
+
|
555 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/layers-form.php:45
|
556 |
+
msgid "Please check to enable Bicycling Layer."
|
557 |
+
msgstr ""
|
558 |
+
|
559 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/locations-form.php:41
|
560 |
+
msgid "Choose Locations"
|
561 |
+
msgstr ""
|
562 |
+
|
563 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/locations-form.php:46
|
564 |
+
msgid "Choose"
|
565 |
+
msgstr ""
|
566 |
+
|
567 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/locations-form.php:47
|
568 |
+
msgid "Select All"
|
569 |
+
msgstr ""
|
570 |
+
|
571 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/locations-form.php:48
|
572 |
+
msgid "Deselect All"
|
573 |
+
msgstr ""
|
574 |
+
|
575 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/map-center-settings.php:8
|
576 |
+
msgid "Map's Center"
|
577 |
+
msgstr ""
|
578 |
+
|
579 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/map-center-settings.php:14
|
580 |
+
msgid "Center Latitude"
|
581 |
+
msgstr ""
|
582 |
+
|
583 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/map-center-settings.php:16
|
584 |
+
msgid "Enter here the center latitude."
|
585 |
+
msgstr ""
|
586 |
+
|
587 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/map-center-settings.php:20
|
588 |
+
msgid "Center Longitude"
|
589 |
+
msgstr ""
|
590 |
+
|
591 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/map-center-settings.php:22
|
592 |
+
msgid "Enter here the center longitude."
|
593 |
+
msgstr ""
|
594 |
+
|
595 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:9
|
596 |
+
msgid "Street View Settings"
|
597 |
+
msgstr ""
|
598 |
+
|
599 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:15
|
600 |
+
msgid "Turn On Street View"
|
601 |
+
msgstr ""
|
602 |
+
|
603 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:19
|
604 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:29
|
605 |
+
msgid "Please check to enable Street View control."
|
606 |
+
msgstr ""
|
607 |
+
|
608 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:25
|
609 |
+
msgid "Turn On Close Button."
|
610 |
+
msgstr ""
|
611 |
+
|
612 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:36
|
613 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:47
|
614 |
+
msgid "Turn Off links Control."
|
615 |
+
msgstr ""
|
616 |
+
|
617 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:40
|
618 |
+
msgid "Please check to disable links control."
|
619 |
+
msgstr ""
|
620 |
+
|
621 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:51
|
622 |
+
msgid "Please check to disable Street View Pan control."
|
623 |
+
msgstr ""
|
624 |
+
|
625 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:58
|
626 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:67
|
627 |
+
msgid "POV Heading"
|
628 |
+
msgstr ""
|
629 |
+
|
630 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:61
|
631 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:70
|
632 |
+
msgid "Please enter POV heading."
|
633 |
+
msgstr ""
|
634 |
+
|
635 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:77
|
636 |
+
msgid "POV Pitch"
|
637 |
+
msgstr ""
|
638 |
+
|
639 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/map/views/map-forms/street-view-setting-form.php:80
|
640 |
+
msgid "Please enter POV Pitch."
|
641 |
+
msgstr ""
|
642 |
+
|
643 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/overview/views/view.php:12
|
644 |
+
msgid "How to Use"
|
645 |
+
msgstr ""
|
646 |
+
|
647 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/overview/views/view.php:14
|
648 |
+
msgid "Go through the steps below to create your first map."
|
649 |
+
msgstr ""
|
650 |
+
|
651 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/overview/views/view.php:18
|
652 |
+
#, php-format
|
653 |
+
msgid ""
|
654 |
+
"Use our auto suggestion enabled location box to add your location <a href="
|
655 |
+
"\"%s\">here</a>. You can add multiple locations.All those locations will be "
|
656 |
+
"available to choose when you create your map."
|
657 |
+
msgstr ""
|
658 |
+
|
659 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/overview/views/view.php:23
|
660 |
+
#, php-format
|
661 |
+
msgid ""
|
662 |
+
"Now <a href=\"%s\">click here</a> to create a map. You can create as many "
|
663 |
+
"maps you want to add. Using shortcode, you can add maps on posts/pages."
|
664 |
+
msgstr ""
|
665 |
+
|
666 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/overview/views/view.php:28
|
667 |
+
msgid ""
|
668 |
+
"When done with administrative tasks, you can display map on posts/pages "
|
669 |
+
"using. You can create as many maps you want to add. Using shortcode, you can "
|
670 |
+
"add maps on posts/pages. Enable map in the widgets section to display in "
|
671 |
+
"sidebar."
|
672 |
+
msgstr ""
|
673 |
+
|
674 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/overview/views/view.php:34
|
675 |
+
msgid "Pro Version"
|
676 |
+
msgstr ""
|
677 |
+
|
678 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/overview/views/view.php:36
|
679 |
+
msgid "Pro Edition Features"
|
680 |
+
msgstr ""
|
681 |
+
|
682 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/model.settings.php:28
|
683 |
+
msgid "Settings"
|
684 |
+
msgstr ""
|
685 |
+
|
686 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/model.settings.php:53
|
687 |
+
msgid "Setting(s) saved successfully."
|
688 |
+
msgstr ""
|
689 |
+
|
690 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:10
|
691 |
+
msgid "General Setting(s)"
|
692 |
+
msgstr ""
|
693 |
+
|
694 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:12
|
695 |
+
msgid "Business API Key"
|
696 |
+
msgstr ""
|
697 |
+
|
698 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:14
|
699 |
+
msgid "Insert Api Key if you signup for google maps business api."
|
700 |
+
msgstr ""
|
701 |
+
|
702 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:17
|
703 |
+
msgid "ENGLISH"
|
704 |
+
msgstr ""
|
705 |
+
|
706 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:18
|
707 |
+
msgid "ARABIC"
|
708 |
+
msgstr ""
|
709 |
+
|
710 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:19
|
711 |
+
msgid "BASQUE"
|
712 |
+
msgstr ""
|
713 |
+
|
714 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:20
|
715 |
+
msgid "BULGARIAN"
|
716 |
+
msgstr ""
|
717 |
+
|
718 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:21
|
719 |
+
msgid "BENGALI"
|
720 |
+
msgstr ""
|
721 |
+
|
722 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:22
|
723 |
+
msgid "CATALAN"
|
724 |
+
msgstr ""
|
725 |
+
|
726 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:23
|
727 |
+
msgid "CZECH"
|
728 |
+
msgstr ""
|
729 |
+
|
730 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:24
|
731 |
+
msgid "DANISH"
|
732 |
+
msgstr ""
|
733 |
+
|
734 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:25
|
735 |
+
msgid "GERMAN"
|
736 |
+
msgstr ""
|
737 |
+
|
738 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:26
|
739 |
+
msgid "GREEK"
|
740 |
+
msgstr ""
|
741 |
+
|
742 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:27
|
743 |
+
msgid "ENGLISH (AUSTRALIAN)"
|
744 |
+
msgstr ""
|
745 |
+
|
746 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:28
|
747 |
+
msgid "ENGLISH (GREAT BRITAIN)"
|
748 |
+
msgstr ""
|
749 |
+
|
750 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:29
|
751 |
+
msgid "SPANISH"
|
752 |
+
msgstr ""
|
753 |
+
|
754 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:30
|
755 |
+
msgid "FARSI"
|
756 |
+
msgstr ""
|
757 |
+
|
758 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:31
|
759 |
+
msgid "FINNISH"
|
760 |
+
msgstr ""
|
761 |
+
|
762 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:32
|
763 |
+
msgid "FILIPINO"
|
764 |
+
msgstr ""
|
765 |
+
|
766 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:33
|
767 |
+
msgid "FRENCH"
|
768 |
+
msgstr ""
|
769 |
+
|
770 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:34
|
771 |
+
msgid "GALICIAN"
|
772 |
+
msgstr ""
|
773 |
+
|
774 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:35
|
775 |
+
msgid "GUJARATI"
|
776 |
+
msgstr ""
|
777 |
+
|
778 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:36
|
779 |
+
msgid "HINDI"
|
780 |
+
msgstr ""
|
781 |
+
|
782 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:37
|
783 |
+
msgid "CROATIAN"
|
784 |
+
msgstr ""
|
785 |
+
|
786 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:38
|
787 |
+
msgid "HUNGARIAN"
|
788 |
+
msgstr ""
|
789 |
+
|
790 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:39
|
791 |
+
msgid "INDONESIAN"
|
792 |
+
msgstr ""
|
793 |
+
|
794 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:40
|
795 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:48
|
796 |
+
msgid "ITALIAN"
|
797 |
+
msgstr ""
|
798 |
+
|
799 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:41
|
800 |
+
msgid "HEBREW"
|
801 |
+
msgstr ""
|
802 |
+
|
803 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:42
|
804 |
+
msgid "JAPANESE"
|
805 |
+
msgstr ""
|
806 |
+
|
807 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:43
|
808 |
+
msgid "KANNADA"
|
809 |
+
msgstr ""
|
810 |
+
|
811 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:44
|
812 |
+
msgid "KOREAN"
|
813 |
+
msgstr ""
|
814 |
+
|
815 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:45
|
816 |
+
msgid "LITHUANIAN"
|
817 |
+
msgstr ""
|
818 |
+
|
819 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:46
|
820 |
+
msgid "LATVIAN"
|
821 |
+
msgstr ""
|
822 |
+
|
823 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:47
|
824 |
+
msgid "MALAYALAM"
|
825 |
+
msgstr ""
|
826 |
+
|
827 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:49
|
828 |
+
msgid "MARATHI"
|
829 |
+
msgstr ""
|
830 |
+
|
831 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:50
|
832 |
+
msgid "DUTCH"
|
833 |
+
msgstr ""
|
834 |
+
|
835 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:51
|
836 |
+
msgid "NORWEGIAN"
|
837 |
+
msgstr ""
|
838 |
+
|
839 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:52
|
840 |
+
msgid "POLISH"
|
841 |
+
msgstr ""
|
842 |
+
|
843 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:53
|
844 |
+
msgid "PORTUGUESE"
|
845 |
+
msgstr ""
|
846 |
+
|
847 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:54
|
848 |
+
msgid "PORTUGUESE (BRAZIL)"
|
849 |
+
msgstr ""
|
850 |
+
|
851 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:55
|
852 |
+
msgid "PORTUGUESE (PORTUGAL)"
|
853 |
+
msgstr ""
|
854 |
+
|
855 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:56
|
856 |
+
msgid "ROMANIAN"
|
857 |
+
msgstr ""
|
858 |
+
|
859 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:57
|
860 |
+
msgid "RUSSIAN"
|
861 |
+
msgstr ""
|
862 |
+
|
863 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:58
|
864 |
+
msgid "SLOVAK"
|
865 |
+
msgstr ""
|
866 |
+
|
867 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:59
|
868 |
+
msgid "SLOVENIAN"
|
869 |
+
msgstr ""
|
870 |
+
|
871 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:60
|
872 |
+
msgid "SERBIAN"
|
873 |
+
msgstr ""
|
874 |
+
|
875 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:61
|
876 |
+
msgid "SWEDISH"
|
877 |
+
msgstr ""
|
878 |
+
|
879 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:62
|
880 |
+
msgid "TAGALOG"
|
881 |
+
msgstr ""
|
882 |
+
|
883 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:63
|
884 |
+
msgid "TAMIL"
|
885 |
+
msgstr ""
|
886 |
+
|
887 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:64
|
888 |
+
msgid "TELUGU"
|
889 |
+
msgstr ""
|
890 |
+
|
891 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:65
|
892 |
+
msgid "THAI"
|
893 |
+
msgstr ""
|
894 |
+
|
895 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:66
|
896 |
+
msgid "TURKISH"
|
897 |
+
msgstr ""
|
898 |
+
|
899 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:67
|
900 |
+
msgid "UKRAINIAN"
|
901 |
+
msgstr ""
|
902 |
+
|
903 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:68
|
904 |
+
msgid "VIETNAMESE"
|
905 |
+
msgstr ""
|
906 |
+
|
907 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:69
|
908 |
+
msgid "CHINESE (SIMPLIFIED)"
|
909 |
+
msgstr ""
|
910 |
+
|
911 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:70
|
912 |
+
msgid "CHINESE (TRADITIONAL)"
|
913 |
+
msgstr ""
|
914 |
+
|
915 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:75
|
916 |
+
msgid "Select Language"
|
917 |
+
msgstr ""
|
918 |
+
|
919 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:77
|
920 |
+
msgid "Default is English."
|
921 |
+
msgstr ""
|
922 |
+
|
923 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/settings/views/manage.php:82
|
924 |
+
msgid "Save Setting"
|
925 |
+
msgstr ""
|
926 |
+
|
927 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/shortcode/views/put-wpgmp.php:89
|
928 |
+
msgid "not working..."
|
929 |
+
msgstr ""
|
930 |
+
|
931 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/shortcode/views/put-wpgmp.php:91
|
932 |
+
msgid "No results found."
|
933 |
+
msgstr ""
|
934 |
+
|
935 |
+
#: /Applications/XAMPP/xamppfiles/htdocs/demos/wp-content/plugins/wp-google-map-plugin/modules/shortcode/views/put-wpgmp.php:92
|
936 |
+
msgid "Route is not available for your requested route."
|
937 |
+
msgstr ""
|
modules/group_map/model.group_map.php
ADDED
@@ -0,0 +1,141 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class: WPGMP_Model_Group_Map
|
4 |
+
* Menu Order: 3
|
5 |
+
* @author Flipper Code <hello@flippercode.com>
|
6 |
+
* @version 3.0.0
|
7 |
+
* @package Maps
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! class_exists( 'WPGMP_Model_Group_Map' ) ) {
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Category model for CRUD operation.
|
14 |
+
* @package Maps
|
15 |
+
* @author Flipper Code <hello@flippercode.com>
|
16 |
+
*/
|
17 |
+
class WPGMP_Model_Group_Map extends WPGMP_Model_Base {
|
18 |
+
/**
|
19 |
+
* Validations on category properies.
|
20 |
+
* @var array
|
21 |
+
*/
|
22 |
+
protected $validations = array(
|
23 |
+
'group_map_title' => array( 'req' => 'Please enter category title.' ),
|
24 |
+
'group_marker' => array( 'req' => 'Please upload marker image.' ),
|
25 |
+
);
|
26 |
+
/**
|
27 |
+
* Intialize location object.
|
28 |
+
*/
|
29 |
+
function __construct() {
|
30 |
+
|
31 |
+
$this->table = TBL_GROUPMAP;
|
32 |
+
$this->unique = 'group_map_id';
|
33 |
+
}
|
34 |
+
|
35 |
+
/**
|
36 |
+
* Admin menu for CRUD Operation
|
37 |
+
* @return array Admin menu navigation(s).
|
38 |
+
*/
|
39 |
+
function navigation() {
|
40 |
+
return array(
|
41 |
+
'wpgmp_form_group_map' => __( 'Add Marker Category', WPGMP_TEXT_DOMAIN ),
|
42 |
+
'wpgmp_manage_group_map' => __( 'Marker Categories', WPGMP_TEXT_DOMAIN ),
|
43 |
+
);
|
44 |
+
|
45 |
+
}
|
46 |
+
/**
|
47 |
+
* Install table associated with Location entity.
|
48 |
+
* @return string SQL query to install map_locations table.
|
49 |
+
*/
|
50 |
+
function install() {
|
51 |
+
global $wpdb;
|
52 |
+
$group_map = 'CREATE TABLE `'.$wpdb->prefix.'group_map` (
|
53 |
+
`group_map_id` int(11) NOT NULL AUTO_INCREMENT,
|
54 |
+
`group_map_title` varchar(255) DEFAULT NULL,
|
55 |
+
`group_marker` text DEFAULT NULL,
|
56 |
+
`group_setting` text DEFAULT NULL,
|
57 |
+
`group_parent` int(11) DEFAULT 0,
|
58 |
+
`group_added` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
59 |
+
PRIMARY KEY (`group_map_id`)
|
60 |
+
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;';
|
61 |
+
return $group_map;
|
62 |
+
}
|
63 |
+
/**
|
64 |
+
* Get Categories
|
65 |
+
* @param array $where Conditional statement.
|
66 |
+
* @return array Array of Category object(s).
|
67 |
+
*/
|
68 |
+
public function fetch($where = array()) {
|
69 |
+
|
70 |
+
$objects = $this->get( $this->table, $where );
|
71 |
+
|
72 |
+
if ( isset( $objects ) ) {
|
73 |
+
foreach ( $objects as $object ) {
|
74 |
+
if ( strstr( $object->group_marker, 'wp-google-map-plugin/icons/' ) !== false ) {
|
75 |
+
$object->group_marker = str_replace( 'icons', 'assets/images/icons', $object->group_marker ); }
|
76 |
+
}
|
77 |
+
return $objects;
|
78 |
+
}
|
79 |
+
}
|
80 |
+
|
81 |
+
/**
|
82 |
+
* Add or Edit Operation.
|
83 |
+
*/
|
84 |
+
function save() {
|
85 |
+
|
86 |
+
$data = array();
|
87 |
+
$entityID = '';
|
88 |
+
if ( isset( $_REQUEST['_wpnonce'] ) ) {
|
89 |
+
$nonce = sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ); }
|
90 |
+
|
91 |
+
if ( isset( $nonce ) and ! wp_verify_nonce( $nonce, 'wpgmp-nonce' ) ) {
|
92 |
+
|
93 |
+
die( 'Cheating...' );
|
94 |
+
|
95 |
+
}
|
96 |
+
|
97 |
+
$this->verify( $_POST );
|
98 |
+
|
99 |
+
if ( isset( $_POST['entityID'] ) ) {
|
100 |
+
$entityID = intval( wp_unslash( $_POST['entityID'] ) );
|
101 |
+
}
|
102 |
+
|
103 |
+
if ( is_array( $this->errors ) and ! empty( $this->errors ) ) {
|
104 |
+
$this->throw_errors();
|
105 |
+
}
|
106 |
+
|
107 |
+
$data['group_map_title'] = sanitize_text_field( wp_unslash( $_POST['group_map_title'] ) );
|
108 |
+
$data['group_marker'] = wp_unslash( $_POST['group_marker'] );
|
109 |
+
$data['group_parent'] = intval( wp_unslash( $_POST['group_parent'] ) );
|
110 |
+
|
111 |
+
if ( $entityID > 0 ) {
|
112 |
+
$where[ $this->unique ] = $entityID;
|
113 |
+
} else {
|
114 |
+
$where = '';
|
115 |
+
}
|
116 |
+
|
117 |
+
$result = WPGMP_Database::insert_or_update( $this->table, $data, $where );
|
118 |
+
|
119 |
+
if ( false === $result ) {
|
120 |
+
$response['error'] = __( 'Something went wrong. Please try again.',WPGMP_TEXT_DOMAIN );
|
121 |
+
} elseif ( $entityID > 0 ) {
|
122 |
+
$response['success'] = __( 'Category updated successfully',WPGMP_TEXT_DOMAIN );
|
123 |
+
} else {
|
124 |
+
$response['success'] = __( 'Category added successfully.',WPGMP_TEXT_DOMAIN );
|
125 |
+
}
|
126 |
+
return $response;
|
127 |
+
}
|
128 |
+
/**
|
129 |
+
* Delete location object by id.
|
130 |
+
*/
|
131 |
+
function delete() {
|
132 |
+
if ( isset( $_GET['group_map_id'] ) ) {
|
133 |
+
$id = intval( wp_unslash( $_GET['group_map_id'] ) );
|
134 |
+
$connection = WPGMP_Database::connect();
|
135 |
+
$this->query = $connection->prepare( "DELETE FROM $this->table WHERE $this->unique='%d'", $id );
|
136 |
+
return WPGMP_Database::non_query( $this->query, $connection );
|
137 |
+
}
|
138 |
+
}
|
139 |
+
|
140 |
+
}
|
141 |
+
}
|
modules/group_map/views/form.php
ADDED
@@ -0,0 +1,85 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Template for Add & Edit Category
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @package Maps
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( isset( $_REQUEST['_wpnonce'] ) ) {
|
9 |
+
|
10 |
+
$nonce = sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) );
|
11 |
+
|
12 |
+
if ( ! wp_verify_nonce( $nonce, 'wpgmp-nonce' ) ) {
|
13 |
+
|
14 |
+
die( 'Cheating...' );
|
15 |
+
|
16 |
+
} else {
|
17 |
+
$data = $_POST;
|
18 |
+
}
|
19 |
+
}
|
20 |
+
global $wpdb;
|
21 |
+
$modelFactory = new FactoryModelWPGMP();
|
22 |
+
$category = $modelFactory->create_object( 'group_map' );
|
23 |
+
$categories = (array) $category->fetch();
|
24 |
+
if ( isset( $_GET['doaction'] ) and 'edit' == $_GET['doaction'] and isset( $_GET['group_map_id'] ) ) {
|
25 |
+
$category_obj = $category->fetch( array( array( 'group_map_id', '=', intval( wp_unslash( $_GET['group_map_id'] ) ) ) ) );
|
26 |
+
$_POST = (array) $category_obj[0];
|
27 |
+
} elseif ( ! isset( $_GET['doaction'] ) and isset( $response['success'] ) ) {
|
28 |
+
// Reset $_POST object for antoher entry.
|
29 |
+
unset( $_POST );
|
30 |
+
}
|
31 |
+
$form = new Responsive_Markup();
|
32 |
+
$form->set_header( __( 'Marker Category', WPGMP_TEXT_DOMAIN ), $response, __( 'Manage Marker Categories', WPGMP_TEXT_DOMAIN ), 'wpgmp_manage_group_map' );
|
33 |
+
if ( is_array( $categories ) ) {
|
34 |
+
$markers = array( ' ' => 'Please Select' );
|
35 |
+
foreach ( $categories as $i => $single_category ) {
|
36 |
+
if ( $single_category->group_parent == 0 or $single_category->group_parent == '' ) {
|
37 |
+
$markers[ $single_category->group_map_id ] = $single_category->group_map_title;
|
38 |
+
}
|
39 |
+
}
|
40 |
+
|
41 |
+
$form->add_element('select', 'group_parent', array(
|
42 |
+
'lable' => __( 'Parent Category', WPGMP_TEXT_DOMAIN ),
|
43 |
+
'current' => (isset( $_POST['group_parent'] ) and ! empty( $_POST['group_parent'] )) ? intval( wp_unslash( $_POST['group_parent'] ) ) : '',
|
44 |
+
'desc' => __( 'Assign parent category if any.', WPGMP_TEXT_DOMAIN ),
|
45 |
+
'options' => $markers,
|
46 |
+
));
|
47 |
+
|
48 |
+
}
|
49 |
+
|
50 |
+
$form->add_element('text', 'group_map_title', array(
|
51 |
+
'lable' => __( 'Marker Category Title', WPGMP_TEXT_DOMAIN ),
|
52 |
+
'value' => (isset( $_POST['group_map_title'] ) and ! empty( $_POST['group_map_title'] )) ? sanitize_text_field( wp_unslash( $_POST['group_map_title'] ) ) : '',
|
53 |
+
'id' => 'group_map_title',
|
54 |
+
'desc' => __( 'Enter here marker category title.', WPGMP_TEXT_DOMAIN ),
|
55 |
+
'class' => 'create_map form-control',
|
56 |
+
'placeholder' => __( 'Marker Category Title', WPGMP_TEXT_DOMAIN ),
|
57 |
+
'required' => true,
|
58 |
+
));
|
59 |
+
|
60 |
+
$form->set_col( 3 );
|
61 |
+
|
62 |
+
$form->add_element('image_picker', 'group_marker', array(
|
63 |
+
'lable' => __( 'Choose Marker Image', WPGMP_TEXT_DOMAIN ),
|
64 |
+
'src' => (isset( $_POST['group_marker'] ) ) ? wp_unslash( $_POST['group_marker'] ) : WPGMP_IMAGES.'/default_marker.png',
|
65 |
+
'required' => false,
|
66 |
+
));
|
67 |
+
|
68 |
+
$form->add_element('submit', 'create_group_map_location', array(
|
69 |
+
'value' => 'Save Marker Category',
|
70 |
+
'before' => '<div class="col-md-12">',
|
71 |
+
'after' => '</div>'
|
72 |
+
|
73 |
+
));
|
74 |
+
|
75 |
+
$form->add_element('hidden', 'operation', array(
|
76 |
+
'value' => 'save',
|
77 |
+
));
|
78 |
+
|
79 |
+
if ( isset( $_GET['doaction'] ) and 'edit' == $_GET['doaction'] ) {
|
80 |
+
$form->add_element('hidden', 'entityID', array(
|
81 |
+
'value' => intval( wp_unslash( $_GET['group_map_id'] ) ),
|
82 |
+
));
|
83 |
+
}
|
84 |
+
|
85 |
+
$form->render();
|
modules/group_map/views/manage.php
ADDED
@@ -0,0 +1,71 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Manage Marker Categories
|
4 |
+
* @package Maps
|
5 |
+
*/
|
6 |
+
|
7 |
+
if ( class_exists( 'WP_List_Table_Helper' ) and ! class_exists( 'Wpgmp_Manage_Group_Table' ) ) {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Display categories manager.
|
11 |
+
*/
|
12 |
+
class Wpgmp_Manage_Group_Table extends WP_List_Table_Helper {
|
13 |
+
|
14 |
+
/**
|
15 |
+
* Intialize manage category table.
|
16 |
+
* @param array $tableinfo Table's properties.
|
17 |
+
*/
|
18 |
+
public function __construct($tableinfo) {
|
19 |
+
parent::__construct( $tableinfo ); }
|
20 |
+
/**
|
21 |
+
* Show marker image assigned to category.
|
22 |
+
* @param array $item Category row.
|
23 |
+
* @return html Image tag.
|
24 |
+
*/
|
25 |
+
public function column_group_marker($item) {
|
26 |
+
if ( strstr( $item->group_marker, 'wp-google-map-plugin/icons/' ) !== false ) {
|
27 |
+
$item->group_marker = str_replace( 'icons', 'assets/images/icons', $item->group_marker );
|
28 |
+
}
|
29 |
+
return sprintf( '<img src="'.$item->group_marker.'" name="group_image[]" value="%s" />', $item->group_map_id );
|
30 |
+
}
|
31 |
+
/**
|
32 |
+
* Show category's parent name.
|
33 |
+
* @param [type] $item Category row.
|
34 |
+
* @return string Category name.
|
35 |
+
*/
|
36 |
+
public function column_group_parent($item) {
|
37 |
+
|
38 |
+
global $wpdb;
|
39 |
+
$parent = $wpdb->get_col( $wpdb->prepare( 'SELECT group_map_title FROM '.$this->table.' where group_map_id = %d',$item->group_parent ) );
|
40 |
+
$parent = ( ! empty( $parent )) ? ucwords( $parent[0] ) : '---';
|
41 |
+
return $parent;
|
42 |
+
|
43 |
+
}
|
44 |
+
|
45 |
+
}
|
46 |
+
global $wpdb;
|
47 |
+
$columns = array(
|
48 |
+
'group_map_title' => 'Category Title',
|
49 |
+
'group_marker' => 'Marker Image',
|
50 |
+
'group_parent' => 'Parent Category',
|
51 |
+
'group_added' => 'Updated On',
|
52 |
+
);
|
53 |
+
$sortable = array( 'group_map_title' );
|
54 |
+
$tableinfo = array(
|
55 |
+
'table' => $wpdb->prefix.'group_map',
|
56 |
+
'textdomain' => WPGMP_TEXT_DOMAIN,
|
57 |
+
'singular_label' => 'marker category',
|
58 |
+
'plural_label' => 'Categories',
|
59 |
+
'admin_listing_page_name' => 'wpgmp_manage_group_map',
|
60 |
+
'admin_add_page_name' => 'wpgmp_form_group_map',
|
61 |
+
'primary_col' => 'group_map_id',
|
62 |
+
'columns' => $columns,
|
63 |
+
'sortable' => $sortable,
|
64 |
+
'per_page' => 20,
|
65 |
+
'col_showing_links' => 'group_map_title',
|
66 |
+
'searchExclude' => array( 'group_parent' ),
|
67 |
+
'editrecord_filepath' => WPGMP_VIEWS_PATH.'/group_map/add_or_edit.php',
|
68 |
+
);
|
69 |
+
return new Wpgmp_Manage_Group_Table( $tableinfo );
|
70 |
+
|
71 |
+
}
|
modules/location/model.location.php
ADDED
@@ -0,0 +1,378 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class: WPGMP_Model_Location
|
4 |
+
* Menu Order: 1.
|
5 |
+
*
|
6 |
+
* @author Flipper Code <hello@flippercode.com>
|
7 |
+
* @package Maps
|
8 |
+
* @version 3.0.0
|
9 |
+
*/
|
10 |
+
|
11 |
+
if ( ! class_exists( 'WPGMP_Model_Location' ) ) {
|
12 |
+
|
13 |
+
/**
|
14 |
+
* Location model for CRUD operation.
|
15 |
+
* @package Maps
|
16 |
+
* @author Flipper Code <hello@flippercode.com>
|
17 |
+
*/
|
18 |
+
class WPGMP_Model_Location extends WPGMP_Model_Base
|
19 |
+
{
|
20 |
+
/**
|
21 |
+
* Validations on location properies.
|
22 |
+
* @var array
|
23 |
+
*/
|
24 |
+
public $validations = array(
|
25 |
+
'location_title' => array( 'req' => 'Please enter location title.' ),
|
26 |
+
'location_address' => array( 'req' => 'Please enter location address.' ),
|
27 |
+
'location_latitude' => array( 'req' => 'Please enter location latitude.' ),
|
28 |
+
'location_longitude' => array( 'req' => 'Please enter location longitude.' ),
|
29 |
+
);
|
30 |
+
/**
|
31 |
+
* Intialize location object.
|
32 |
+
*/
|
33 |
+
public function __construct() {
|
34 |
+
$this->table = TBL_LOCATION;
|
35 |
+
$this->unique = 'location_id';
|
36 |
+
}
|
37 |
+
/**
|
38 |
+
* Admin menu for CRUD Operation
|
39 |
+
* @return array Admin meny navigation(s).
|
40 |
+
*/
|
41 |
+
public function navigation() {
|
42 |
+
|
43 |
+
return array(
|
44 |
+
'wpgmp_form_location' => __( 'Add Location', WPGMP_TEXT_DOMAIN ),
|
45 |
+
'wpgmp_manage_location' => __( 'Manage Locations', WPGMP_TEXT_DOMAIN ),
|
46 |
+
);
|
47 |
+
}
|
48 |
+
/**
|
49 |
+
* Install table associated with Location entity.
|
50 |
+
* @return string SQL query to install map_locations table.
|
51 |
+
*/
|
52 |
+
public function install() {
|
53 |
+
|
54 |
+
global $wpdb;
|
55 |
+
$map_location = 'CREATE TABLE `'.$wpdb->prefix.'map_locations` (
|
56 |
+
`location_id` int(11) NOT NULL AUTO_INCREMENT,
|
57 |
+
`location_title` varchar(255) DEFAULT NULL,
|
58 |
+
`location_address` varchar(255) DEFAULT NULL,
|
59 |
+
`location_draggable` varchar(255) DEFAULT NULL,
|
60 |
+
`location_infowindow_default_open` varchar(255) DEFAULT NULL,
|
61 |
+
`location_animation` varchar(255) DEFAULT NULL,
|
62 |
+
`location_latitude` varchar(255) DEFAULT NULL,
|
63 |
+
`location_longitude` varchar(255) DEFAULT NULL,
|
64 |
+
`location_city` varchar(255) DEFAULT NULL,
|
65 |
+
`location_state` varchar(255) DEFAULT NULL,
|
66 |
+
`location_country` varchar(255) DEFAULT NULL,
|
67 |
+
`location_postal_code` varchar(255) DEFAULT NULL,
|
68 |
+
`location_zoom` int(11) DEFAULT NULL,
|
69 |
+
`location_messages` text DEFAULT NULL,
|
70 |
+
`location_settings` text DEFAULT NULL,
|
71 |
+
`location_group_map` text DEFAULT NULL,
|
72 |
+
`location_extrafields` text DEFAULT NULL,
|
73 |
+
PRIMARY KEY (`location_id`)
|
74 |
+
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;';
|
75 |
+
|
76 |
+
return $map_location;
|
77 |
+
}
|
78 |
+
/**
|
79 |
+
* Get Location(s)
|
80 |
+
* @param array $where Conditional statement.
|
81 |
+
* @return array Array of Location object(s).
|
82 |
+
*/
|
83 |
+
public function fetch($where = array()) {
|
84 |
+
|
85 |
+
$objects = $this->get( $this->table, $where );
|
86 |
+
|
87 |
+
if ( isset( $objects ) ) {
|
88 |
+
foreach ( $objects as $object ) {
|
89 |
+
$object->location_settings = unserialize( $object->location_settings );
|
90 |
+
$object->location_extrafields = unserialize( $object->location_extrafields );
|
91 |
+
// Data convertion for version < 3.0.
|
92 |
+
$is_category = unserialize( $object->location_group_map );
|
93 |
+
if ( ! is_array( $is_category ) ) {
|
94 |
+
$object->location_group_map = array( $object->location_group_map );
|
95 |
+
} else {
|
96 |
+
$object->location_group_map = $is_category;
|
97 |
+
}
|
98 |
+
// Data convertion for version < 3.0.
|
99 |
+
$is_message = unserialize( base64_decode( $object->location_messages ) );
|
100 |
+
if ( is_array( $is_message ) ) {
|
101 |
+
$object->location_messages = $is_message['googlemap_infowindow_message_one'];
|
102 |
+
}
|
103 |
+
}
|
104 |
+
return $objects;
|
105 |
+
}
|
106 |
+
}
|
107 |
+
|
108 |
+
/**
|
109 |
+
* Add or Edit Operation.
|
110 |
+
*/
|
111 |
+
public function save() {
|
112 |
+
|
113 |
+
$entityID = '';
|
114 |
+
if ( isset( $_REQUEST['_wpnonce'] ) ) {
|
115 |
+
$nonce = sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ); }
|
116 |
+
|
117 |
+
if ( isset( $nonce ) and ! wp_verify_nonce( $nonce, 'wpgmp-nonce' ) ) {
|
118 |
+
|
119 |
+
die( 'Cheating...' );
|
120 |
+
|
121 |
+
}
|
122 |
+
|
123 |
+
$this->verify( $_POST );
|
124 |
+
|
125 |
+
if ( is_array( $this->errors ) and ! empty( $this->errors ) ) {
|
126 |
+
$this->throw_errors();
|
127 |
+
}
|
128 |
+
|
129 |
+
if ( isset( $_POST['entityID'] ) ) {
|
130 |
+
$entityID = intval( wp_unslash( $_POST['entityID'] ) );
|
131 |
+
}
|
132 |
+
|
133 |
+
if ( isset( $_POST['location_messages'] ) ) {
|
134 |
+
$data['location_messages'] = wp_unslash( $_POST['location_messages'] );
|
135 |
+
}
|
136 |
+
$data['location_settings'] = serialize( wp_unslash( $_POST['location_settings'] ) );
|
137 |
+
$data['location_group_map'] = serialize( wp_unslash( $_POST['location_group_map'] ) );
|
138 |
+
$extra_fields = wp_unslash( $_POST['location_extrafields'] );
|
139 |
+
if ( isset( $extra_fields ) ) {
|
140 |
+
foreach ( $extra_fields['key'] as $i => $v ) {
|
141 |
+
if ( sanitize_text_field( $v ) == '' ) {
|
142 |
+
unset( $extra_fields['key'][ $i ] );
|
143 |
+
unset( $extra_fields['value'][ $i ] );
|
144 |
+
}
|
145 |
+
}
|
146 |
+
}
|
147 |
+
$data['location_extrafields'] = serialize( wp_unslash( $extra_fields ) );
|
148 |
+
$data['location_title'] = sanitize_text_field( wp_unslash( $_POST['location_title'] ) );
|
149 |
+
$data['location_address'] = sanitize_text_field( wp_unslash( $_POST['location_address'] ) );
|
150 |
+
$data['location_latitude'] = sanitize_text_field( wp_unslash( $_POST['location_latitude'] ) );
|
151 |
+
$data['location_longitude'] = sanitize_text_field( wp_unslash( $_POST['location_longitude'] ) );
|
152 |
+
$data['location_city'] = sanitize_text_field( wp_unslash( $_POST['location_city'] ) );
|
153 |
+
$data['location_state'] = sanitize_text_field( wp_unslash( $_POST['location_state'] ) );
|
154 |
+
$data['location_country'] = sanitize_text_field( wp_unslash( $_POST['location_country'] ) );
|
155 |
+
$data['location_postal_code'] = sanitize_text_field( wp_unslash( $_POST['location_postal_code'] ) );
|
156 |
+
$data['location_zoom'] = intval( wp_unslash( $_POST['location_zoom'] ) );
|
157 |
+
$data['location_draggable'] = sanitize_text_field( wp_unslash( $_POST['location_draggable'] ) );
|
158 |
+
$data['location_infowindow_default_open'] = sanitize_text_field( wp_unslash( $_POST['location_infowindow_default_open'] ) );
|
159 |
+
$data['location_animation'] = sanitize_text_field( wp_unslash( $_POST['location_animation'] ) );
|
160 |
+
|
161 |
+
if ( $entityID > 0 ) {
|
162 |
+
$where[ $this->unique ] = $entityID;
|
163 |
+
} else {
|
164 |
+
$where = '';
|
165 |
+
}
|
166 |
+
|
167 |
+
$result = WPGMP_Database::insert_or_update( $this->table, $data, $where );
|
168 |
+
|
169 |
+
if ( false === $result ) {
|
170 |
+
$response['error'] = __( 'Something went wrong. Please try again.',WPGMP_TEXT_DOMAIN );
|
171 |
+
} elseif ( $entityID > 0 ) {
|
172 |
+
$response['success'] = __( 'Location updated successfully',WPGMP_TEXT_DOMAIN );
|
173 |
+
} else {
|
174 |
+
$response['success'] = __( 'Location added successfully.',WPGMP_TEXT_DOMAIN );
|
175 |
+
}
|
176 |
+
return $response;
|
177 |
+
}
|
178 |
+
|
179 |
+
/**
|
180 |
+
* Delete location object by id.
|
181 |
+
*/
|
182 |
+
public function delete() {
|
183 |
+
if ( isset( $_GET['location_id'] ) ) {
|
184 |
+
$id = intval( wp_unslash( $_GET['location_id'] ) );
|
185 |
+
$connection = WPGMP_Database::connect();
|
186 |
+
$this->query = $connection->prepare( "DELETE FROM $this->table WHERE $this->unique='%d'", $id );
|
187 |
+
return WPGMP_Database::non_query( $this->query, $connection );
|
188 |
+
}
|
189 |
+
}
|
190 |
+
/**
|
191 |
+
* Export data into csv,xml,json and excel file.
|
192 |
+
* @param string $type File Type.
|
193 |
+
*/
|
194 |
+
function export($type = 'csv') {
|
195 |
+
$all_locations = $this->fetch();
|
196 |
+
$file_name = sanitize_file_name( 'location_'.$type.'_'.time() );
|
197 |
+
$modelFactory = new FactoryModelWPGMP();
|
198 |
+
$category = $modelFactory->create_object( 'group_map' );
|
199 |
+
$categories = $category->fetch();
|
200 |
+
if ( ! empty( $categories ) ) {
|
201 |
+
$categories_data = array();
|
202 |
+
foreach ( $categories as $cat ) {
|
203 |
+
$categories_data[ $cat->group_map_id ] = $cat->group_map_title;
|
204 |
+
}
|
205 |
+
}
|
206 |
+
foreach ( $all_locations as $location ) {
|
207 |
+
$assigned_categories = array();
|
208 |
+
if ( isset( $location->location_group_map ) and is_array( $location->location_group_map ) ) {
|
209 |
+
foreach ( $location->location_group_map as $c => $cat ) {
|
210 |
+
$assigned_categories[] = $categories_data[ $cat ];
|
211 |
+
}
|
212 |
+
}
|
213 |
+
$assigned_categories = implode( ',',$assigned_categories );
|
214 |
+
$data_locations [] = array(
|
215 |
+
'location_title' => $location->location_title,
|
216 |
+
'location_address' => $location->location_address,
|
217 |
+
'location_latitude' => $location->location_latitude,
|
218 |
+
'location_longitude' => $location->location_longitude,
|
219 |
+
'location_city' => $location->location_city,
|
220 |
+
'location_state' => $location->location_state,
|
221 |
+
'location_country' => $location->location_country,
|
222 |
+
'location_postal_code' => $location->location_postal_code,
|
223 |
+
'location_messages' => $location->location_messages,
|
224 |
+
'location_group_map' => $assigned_categories,
|
225 |
+
);
|
226 |
+
}
|
227 |
+
$exporter = new WP_Export_Import(array(
|
228 |
+
'Title',
|
229 |
+
'Address',
|
230 |
+
'Latitude',
|
231 |
+
'Longitude',
|
232 |
+
'City',
|
233 |
+
'State',
|
234 |
+
'Country',
|
235 |
+
'Postal Code',
|
236 |
+
'Message',
|
237 |
+
'Categories',
|
238 |
+
),$data_locations);
|
239 |
+
$exporter->export( $type,$file_name );
|
240 |
+
die();
|
241 |
+
}
|
242 |
+
/**
|
243 |
+
* Import Location via CSV,JSON,XML and Excel.
|
244 |
+
* @return array Success or Failure error message.
|
245 |
+
*/
|
246 |
+
public function import_location() {
|
247 |
+
$result = false;
|
248 |
+
if ( isset( $_REQUEST['_wpnonce'] ) ) {
|
249 |
+
$nonce = sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ); }
|
250 |
+
|
251 |
+
if ( ! wp_verify_nonce( $nonce, 'wpgmp-nonce' ) ) {
|
252 |
+
|
253 |
+
die( 'Cheating...' );
|
254 |
+
|
255 |
+
}
|
256 |
+
if ( isset( $_POST['import_loc'] ) ) {
|
257 |
+
if ( isset( $_FILES['import_file']['tmp_name'] ) and '' == sanitize_file_name( wp_unslash( $_FILES['import_file']['tmp_name'] ) ) ) {
|
258 |
+
$response['error'] = __( 'Please select file to be imported.', WPGMP_TEXT_DOMAIN );
|
259 |
+
} elseif ( isset( $_FILES['import_file']['name'] ) and ! $this->wpgmp_validate_extension( sanitize_file_name( wp_unslash( $_FILES['import_file']['name'] ) ) ) ) {
|
260 |
+
$response['error'] = __( 'Please upload a valid file', WPGMP_TEXT_DOMAIN );
|
261 |
+
} else {
|
262 |
+
if ( isset( $_POST['wpgmp_import_mode'] ) and 'wpgmp_delete' == sanitize_text_field( wp_unslash( $_POST['wpgmp_import_mode'] ) ) ) {
|
263 |
+
global $wpdb;
|
264 |
+
|
265 |
+
$wpdb->query( 'TRUNCATE TABLE '.TBL_LOCATION.'' ); // DB call ok; no-cache ok.
|
266 |
+
}
|
267 |
+
|
268 |
+
$file_extension = explode( '.', sanitize_file_name( wp_unslash( $_FILES['import_file']['name'] ) ) );
|
269 |
+
$importer = new WP_Export_Import();
|
270 |
+
$file_data = $importer->import( $file_extension[1],'import_file' );
|
271 |
+
$datas = array();
|
272 |
+
if ( ! empty( $file_data ) ) {
|
273 |
+
$modelFactory = new FactoryModelWPGMP();
|
274 |
+
$category = $modelFactory->create_object( 'group_map' );
|
275 |
+
$categories = $category->fetch();
|
276 |
+
if ( ! empty( $categories ) ) {
|
277 |
+
$categories_data = array();
|
278 |
+
foreach ( $categories as $cat ) {
|
279 |
+
$categories_data[ $cat->group_map_id ] = strtolower( sanitize_text_field( $cat->group_map_title ) );
|
280 |
+
}
|
281 |
+
}
|
282 |
+
foreach ( $file_data as $data ) {
|
283 |
+
$category_ids = array();
|
284 |
+
|
285 |
+
if ( isset( $data['title'] ) ) {
|
286 |
+
$datas['location_title'] = $data['title'];
|
287 |
+
} else if ( isset( $data['location_title'] ) ) {
|
288 |
+
$datas['location_title'] = $data['location_title'];
|
289 |
+
}
|
290 |
+
|
291 |
+
if ( isset( $data['address'] ) ) {
|
292 |
+
$datas['location_address'] = $data['address'];
|
293 |
+
} else if ( isset( $data['location_title'] ) ) {
|
294 |
+
$datas['location_address'] = $data['location_address'];
|
295 |
+
}
|
296 |
+
|
297 |
+
if ( isset( $data['latitude'] ) ) {
|
298 |
+
$datas['location_latitude'] = $data['latitude'];
|
299 |
+
} else if ( isset( $data['location_latitude'] ) ) {
|
300 |
+
$datas['location_latitude'] = $data['location_latitude'];
|
301 |
+
}
|
302 |
+
|
303 |
+
if ( isset( $data['longitude'] ) ) {
|
304 |
+
$datas['location_longitude'] = $data['longitude'];
|
305 |
+
} else if ( isset( $data['location_longitude'] ) ) {
|
306 |
+
$datas['location_longitude'] = $data['location_longitude'];
|
307 |
+
}
|
308 |
+
|
309 |
+
if ( isset( $data['city'] ) ) {
|
310 |
+
$datas['location_city'] = $data['city'];
|
311 |
+
} else if ( isset( $data['location_city'] ) ) {
|
312 |
+
$datas['location_city'] = $data['location_city'];
|
313 |
+
}
|
314 |
+
|
315 |
+
if ( isset( $data['country'] ) ) {
|
316 |
+
$datas['location_country'] = $data['country'];
|
317 |
+
} else if ( isset( $data['location_city'] ) ) {
|
318 |
+
$datas['location_country'] = $data['location_country'];
|
319 |
+
}
|
320 |
+
|
321 |
+
if ( isset( $data['postal-code'] ) ) {
|
322 |
+
$datas['location_postal_code'] = $data['postal-code'];
|
323 |
+
} else if ( isset( $data['location_city'] ) ) {
|
324 |
+
$datas['location_postal_code'] = $data['location_postal_code'];
|
325 |
+
}
|
326 |
+
|
327 |
+
if ( isset( $data['message'] ) ) {
|
328 |
+
$datas['location_messages'] = $data['message'];
|
329 |
+
} else if ( isset( $data['location_messages'] ) ) {
|
330 |
+
$datas['location_messages'] = $data['location_messages'];
|
331 |
+
}
|
332 |
+
|
333 |
+
if ( isset( $data['location_group_map'] ) ) {
|
334 |
+
$data['categories'] = $data['location_group_map'];
|
335 |
+
}
|
336 |
+
|
337 |
+
$datas['location_messages'] = $data['message'];
|
338 |
+
// Find out categories id or insert new category.
|
339 |
+
if ( isset( $data['categories'] ) and ! empty( $data['categories'] ) ) {
|
340 |
+
$all_cat = explode( ',', strtolower( $data['categories'] ) );
|
341 |
+
if ( is_array( $all_cat ) ) {
|
342 |
+
foreach ( $all_cat as $cat ) {
|
343 |
+
$cat_id = array_search( sanitize_text_field( $cat ), (array) $categories_data );
|
344 |
+
if ( false == $cat_id ) {
|
345 |
+
// Create a new category.
|
346 |
+
$new_cat_id = WPGMP_Database::insert_or_update( TBL_GROUPMAP, array(
|
347 |
+
'group_map_title' => sanitize_text_field( $cat ),
|
348 |
+
'group_marker' => WPGMP_IMAGES.'default_marker.png',
|
349 |
+
) );
|
350 |
+
$category_ids[] = $new_cat_id;
|
351 |
+
$categories_data[ $new_cat_id ] = sanitize_text_field( $cat );
|
352 |
+
|
353 |
+
} else {
|
354 |
+
$category_ids[] = $cat_id;
|
355 |
+
}
|
356 |
+
}
|
357 |
+
}
|
358 |
+
}
|
359 |
+
$datas['location_group_map'] = serialize( (array) $category_ids );
|
360 |
+
$result = WPGMP_Database::insert_or_update( $this->table, $datas );
|
361 |
+
}
|
362 |
+
}
|
363 |
+
|
364 |
+
if ( false === $result ) {
|
365 |
+
$response['error'] = __( 'Something went wrong. Please try again.',WPGMP_TEXT_DOMAIN );
|
366 |
+
} elseif ( $entityID > 0 ) {
|
367 |
+
$response['success'] = __( 'Location updated successfully',WPGMP_TEXT_DOMAIN );
|
368 |
+
} else {
|
369 |
+
$response['success'] = __( 'Location added successfully.',WPGMP_TEXT_DOMAIN );
|
370 |
+
}
|
371 |
+
return $response;
|
372 |
+
|
373 |
+
}
|
374 |
+
return $response;
|
375 |
+
}
|
376 |
+
}
|
377 |
+
}
|
378 |
+
}
|
modules/location/views/form.php
ADDED
@@ -0,0 +1,294 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Template for Add & Edit Location
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @package Maps
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( isset( $_REQUEST['_wpnonce'] ) ) {
|
9 |
+
|
10 |
+
$nonce = sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) );
|
11 |
+
|
12 |
+
if ( ! wp_verify_nonce( $nonce, 'wpgmp-nonce' ) ) {
|
13 |
+
|
14 |
+
die( 'Cheating...' );
|
15 |
+
|
16 |
+
} else {
|
17 |
+
$data = $_POST;
|
18 |
+
}
|
19 |
+
}
|
20 |
+
global $wpdb;
|
21 |
+
|
22 |
+
|
23 |
+
$modelFactory = new FactoryModelWPGMP();
|
24 |
+
$category_obj = $modelFactory->create_object( 'group_map' );
|
25 |
+
$categories = $category_obj->fetch();
|
26 |
+
if ( is_array( $categories ) and ! empty( $categories ) ) {
|
27 |
+
$all_categories = array();
|
28 |
+
foreach ( $categories as $category ) {
|
29 |
+
$all_categories [ $category->group_map_id ] = $category;
|
30 |
+
}
|
31 |
+
}
|
32 |
+
$location_obj = $modelFactory->create_object( 'location' );
|
33 |
+
if ( isset( $_GET['doaction'] ) and 'edit' == $_GET['doaction'] and isset( $_GET['location_id'] ) ) {
|
34 |
+
$location_obj = $location_obj->fetch( array( array( 'location_id', '=', intval( wp_unslash( $_GET['location_id'] ) ) ) ) );
|
35 |
+
$data = (array) $location_obj[0];
|
36 |
+
} elseif ( ! isset( $_GET['doaction'] ) and isset( $response['success'] ) ) {
|
37 |
+
// Reset $_POST object for antoher entry.
|
38 |
+
unset( $data );
|
39 |
+
}
|
40 |
+
$form = new Responsive_Markup();
|
41 |
+
$form->set_header( __( 'Location Information', WPGMP_TEXT_DOMAIN ), $response, __( 'Manage Locations', WPGMP_TEXT_DOMAIN ), 'wpgmp_manage_location' );
|
42 |
+
$form->add_element( 'text', 'location_title', array(
|
43 |
+
'lable' => __( 'Location Title', 'wpgmp_google_map' ),
|
44 |
+
'value' => (isset( $data['location_title'] ) and ! empty( $data['location_title'] )) ? $data['location_title'] : '',
|
45 |
+
'desc' => __( 'Enter here the location title.', WPGMP_TEXT_DOMAIN ),
|
46 |
+
'required' => true,
|
47 |
+
'placeholder' => __( 'Enter Location Title', WPGMP_TEXT_DOMAIN ),
|
48 |
+
));
|
49 |
+
$form->add_element( 'text', 'location_address', array(
|
50 |
+
'lable' => __( 'Location Address', WPGMP_TEXT_DOMAIN ),
|
51 |
+
'value' => (isset( $data['location_address'] ) and ! empty( $data['location_address'] )) ? $data['location_address'] : '',
|
52 |
+
'desc' => __( 'Enter here the address. Google auto suggest helps you to choose one.', WPGMP_TEXT_DOMAIN ),
|
53 |
+
'required' => true,
|
54 |
+
'class' => 'form-control wpgmp_auto_suggest',
|
55 |
+
'placeholder' => __( 'Type Location Address', WPGMP_TEXT_DOMAIN ),
|
56 |
+
));
|
57 |
+
$form->set_col( 2 );
|
58 |
+
$form->add_element( 'text', 'location_latitude', array(
|
59 |
+
'lable' => __( 'Latitude and Longitude', WPGMP_TEXT_DOMAIN ),
|
60 |
+
'value' => (isset( $data['location_latitude'] ) and ! empty( $data['location_latitude'] )) ? $data['location_latitude'] : '',
|
61 |
+
'id' => 'googlemap_latitude',
|
62 |
+
'desc' => __( 'Enter here the latitude.', WPGMP_TEXT_DOMAIN ),
|
63 |
+
'required' => true,
|
64 |
+
'class' => 'google_latitude form-control',
|
65 |
+
'placeholder' => __( 'Enter the Latitude', WPGMP_TEXT_DOMAIN ),
|
66 |
+
'before' => '<div class="col-md-4">',
|
67 |
+
'after' => '</div>',
|
68 |
+
));
|
69 |
+
$form->add_element( 'text', 'location_longitude', array(
|
70 |
+
'value' => (isset( $data['location_longitude'] ) and ! empty( $data['location_longitude'] )) ? $data['location_longitude'] : '',
|
71 |
+
'id' => 'googlemap_longitude',
|
72 |
+
'desc' => __( 'Enter here the longitude.', WPGMP_TEXT_DOMAIN ),
|
73 |
+
'required' => true,
|
74 |
+
'class' => 'google_longitude form-control',
|
75 |
+
'placeholder' => __( 'Enter the Longitude', WPGMP_TEXT_DOMAIN ),
|
76 |
+
'before' => '<div class="col-md-4">',
|
77 |
+
'after' => '</div>',
|
78 |
+
));
|
79 |
+
$form->add_element( 'text', 'location_city', array(
|
80 |
+
'lable' => __( 'City and State', WPGMP_TEXT_DOMAIN ),
|
81 |
+
'value' => (isset( $data['location_city'] ) and ! empty( $data['location_city'] )) ? $data['location_city'] : '',
|
82 |
+
'id' => 'googlemap_city',
|
83 |
+
'desc' => __( 'Enter here the city.', WPGMP_TEXT_DOMAIN ),
|
84 |
+
'class' => 'google_city form-control',
|
85 |
+
'placeholder' => __( 'City', WPGMP_TEXT_DOMAIN ),
|
86 |
+
'before' => '<div class="col-md-4">',
|
87 |
+
'after' => '</div>',
|
88 |
+
));
|
89 |
+
$form->add_element( 'text', 'location_state', array(
|
90 |
+
'value' => (isset( $data['location_state'] ) and ! empty( $data['location_state'] )) ? $data['location_state'] : '',
|
91 |
+
'id' => 'googlemap_state',
|
92 |
+
'desc' => __( 'Enter here the state.', WPGMP_TEXT_DOMAIN ),
|
93 |
+
'class' => 'google_state form-control',
|
94 |
+
'placeholder' => __( 'State', WPGMP_TEXT_DOMAIN ),
|
95 |
+
'before' => '<div class="col-md-4">',
|
96 |
+
'after' => '</div>',
|
97 |
+
));
|
98 |
+
$form->add_element( 'text', 'location_country', array(
|
99 |
+
'lable' => __( 'Country and Postal Code', WPGMP_TEXT_DOMAIN ),
|
100 |
+
'value' => (isset( $data['location_country'] ) and ! empty( $data['location_country'] )) ? $data['location_country'] : '',
|
101 |
+
'id' => 'googlemap_country',
|
102 |
+
'desc' => __( 'Enter here the country.', WPGMP_TEXT_DOMAIN ),
|
103 |
+
'class' => 'google_country form-control',
|
104 |
+
'placeholder' => __( 'Country', WPGMP_TEXT_DOMAIN ),
|
105 |
+
'before' => '<div class="col-md-4">',
|
106 |
+
'after' => '</div>',
|
107 |
+
));
|
108 |
+
$form->add_element( 'text', 'location_postal_code', array(
|
109 |
+
'value' => (isset( $data['location_postal_code'] ) and ! empty( $data['location_postal_code'] )) ? $data['location_postal_code'] : '',
|
110 |
+
'id' => 'googlemap_postal_code',
|
111 |
+
'desc' => __( 'Enter here the postal code.', WPGMP_TEXT_DOMAIN ),
|
112 |
+
'class' => 'google_postal_code form-control',
|
113 |
+
'placeholder' => __( 'Postal Code', WPGMP_TEXT_DOMAIN ),
|
114 |
+
'before' => '<div class="col-md-4">',
|
115 |
+
'after' => '</div>',
|
116 |
+
));
|
117 |
+
$form->set_col( 1 );
|
118 |
+
$form->add_element( 'div', 'wpgmp_map', array(
|
119 |
+
'lable' => __( 'Current Location', WPGMP_TEXT_DOMAIN ),
|
120 |
+
'id' => 'wpgmp_map',
|
121 |
+
'style' => array( 'width' => '100%' ,'height' => '300px' ),
|
122 |
+
));
|
123 |
+
|
124 |
+
|
125 |
+
$form->add_element( 'radio', 'location_settings[onclick]', array(
|
126 |
+
'lable' => __( 'On Click', WPGMP_TEXT_DOMAIN ),
|
127 |
+
'radio-val-label' => array( 'marker' => __( 'Display Infowindow',WPGMP_TEXT_DOMAIN ),'custom_link' => __( 'Redirect',WPGMP_TEXT_DOMAIN ) ),
|
128 |
+
'current' => $data['location_settings']['onclick'],
|
129 |
+
'class' => 'chkbox_class switch_onoff',
|
130 |
+
'default_value' => 'marker',
|
131 |
+
'data' => array( 'target' => '.wpgmp_location_onclick' ),
|
132 |
+
));
|
133 |
+
|
134 |
+
$form->add_element( 'textarea', 'location_messages', array(
|
135 |
+
'lable' => __( 'Infowindow Message', WPGMP_TEXT_DOMAIN ),
|
136 |
+
'value' => (isset( $data['location_messages'] ) and ! empty( $data['location_messages'] )) ? $data['location_messages'] : '',
|
137 |
+
'desc' => __( 'Enter here the infoWindow message.', WPGMP_TEXT_DOMAIN ),
|
138 |
+
'textarea_rows' => 10,
|
139 |
+
'textarea_name' => 'location_messages',
|
140 |
+
'class' => 'form-control wpgmp_location_onclick wpgmp_location_onclick_marker',
|
141 |
+
'id' => 'googlemap_infomessage',
|
142 |
+
'show' => 'false',
|
143 |
+
));
|
144 |
+
|
145 |
+
$form->add_element( 'text', 'location_settings[redirect_link]', array(
|
146 |
+
'lable' => __( 'Redirect Url',WPGMP_TEXT_DOMAIN ),
|
147 |
+
'value' => $data['location_settings']['redirect_link'],
|
148 |
+
'desc' => __( 'Enter here the redirect url. e.g http://www.flippercode.com', WPGMP_TEXT_DOMAIN ),
|
149 |
+
'class' => 'wpgmp_location_onclick_custom_link wpgmp_location_onclick form-control',
|
150 |
+
'before' => '<div class="col-md-8">',
|
151 |
+
'after' => '</div>',
|
152 |
+
'show' => 'false',
|
153 |
+
));
|
154 |
+
|
155 |
+
$form->add_element( 'select', 'location_settings[redirect_link_window]', array(
|
156 |
+
'options' => array( 'yes' => __( 'YES',WPGMP_TEXT_DOMAIN ), 'no' => __( 'NO',WPGMP_TEXT_DOMAIN ) ),
|
157 |
+
'lable' => __( 'Open new tab',WPGMP_TEXT_DOMAIN ),
|
158 |
+
'current' => $data['location_settings']['redirect_link_window'],
|
159 |
+
'desc' => __( 'Open a new window tab.', WPGMP_TEXT_DOMAIN ),
|
160 |
+
'class' => 'wpgmp_location_onclick_redirect wpgmp_location_onclick form-control',
|
161 |
+
'before' => '<div class="col-md-2">',
|
162 |
+
'after' => '</div>',
|
163 |
+
'show' => 'false',
|
164 |
+
));
|
165 |
+
|
166 |
+
|
167 |
+
$form->add_element( 'checkbox', 'location_infowindow_default_open', array(
|
168 |
+
'lable' => __( 'Infowindow Default Open', WPGMP_TEXT_DOMAIN ),
|
169 |
+
'value' => 'true',
|
170 |
+
'id' => 'location_infowindow_default_open',
|
171 |
+
'current' => $data['location_infowindow_default_open'],
|
172 |
+
'desc' => __( 'Check to enable infowindow default open.', WPGMP_TEXT_DOMAIN ),
|
173 |
+
'class' => 'chkbox_class',
|
174 |
+
));
|
175 |
+
$form->add_element( 'checkbox', 'location_draggable', array(
|
176 |
+
'lable' => __( 'Marker Draggable', WPGMP_TEXT_DOMAIN ),
|
177 |
+
'value' => 'true',
|
178 |
+
'id' => 'location_draggable',
|
179 |
+
'current' => $data['location_draggable'],
|
180 |
+
'desc' => __( 'Check if you want to allow visitors to drag the marker.', WPGMP_TEXT_DOMAIN ),
|
181 |
+
'class' => 'chkbox_class',
|
182 |
+
));
|
183 |
+
$form->add_element( 'select', 'location_animation', array(
|
184 |
+
'lable' => __( 'Marker Animation', WPGMP_TEXT_DOMAIN ),
|
185 |
+
'current' => (isset( $data['location_animation'] ) and ! empty( $data['location_animation'] )) ? $data['location_animation'] : '',
|
186 |
+
'desc' => __( 'Please select marker animation.', WPGMP_TEXT_DOMAIN ),
|
187 |
+
'options' => array( 'BOUNCE' => 'Bounce', 'DROP' => 'DROP' ),
|
188 |
+
'before' => '<div class="col-md-3">',
|
189 |
+
'after' => '</div>',
|
190 |
+
));
|
191 |
+
|
192 |
+
|
193 |
+
$form->add_element( 'group', 'marker_category_listing', array(
|
194 |
+
'value' => __( 'Marker Categories', WPGMP_TEXT_DOMAIN ),
|
195 |
+
'before' => '<div class="col-md-12">',
|
196 |
+
'after' => '</div>',
|
197 |
+
));
|
198 |
+
|
199 |
+
if ( ! empty( $all_categories ) ) {
|
200 |
+
$category_data = array();
|
201 |
+
$parent_category_data = array();
|
202 |
+
if ( ! $data['location_group_map'] ) {
|
203 |
+
$data['location_group_map'] = array(); }
|
204 |
+
foreach ( $categories as $category ) {
|
205 |
+
if ( is_null( $category->group_parent ) or 0 == $category->group_parent ) {
|
206 |
+
$parent_category_data = ' ---- ';
|
207 |
+
} else {
|
208 |
+
$parent_category_data = $all_categories[ $category->group_parent ]->group_map_title;
|
209 |
+
}
|
210 |
+
if ( '' != $category->group_marker ) {
|
211 |
+
$icon_src = "<img src='".$category->group_marker."' />";
|
212 |
+
} else {
|
213 |
+
$icon_src = "<img src='".WPGMP_IMAGES."default_marker.png' />";
|
214 |
+
|
215 |
+
}
|
216 |
+
$select_input = $form->field_checkbox('location_group_map[]',array(
|
217 |
+
'value' => $category->group_map_id,
|
218 |
+
'current' => (in_array( $category->group_map_id, $data['location_group_map'] ) ? $category->group_map_id : ''),
|
219 |
+
'class' => 'chkbox_class',
|
220 |
+
'before' => '<div class="col-md-1">',
|
221 |
+
'after' => '</div>',
|
222 |
+
));
|
223 |
+
$category_data[] = array( $select_input,$category->group_map_title,$parent_category_data,$icon_src );
|
224 |
+
}
|
225 |
+
$category_data = $form->add_element( 'table', 'location_group_map', array(
|
226 |
+
'heading' => array( 'Select','Category','Parent','Icon' ),
|
227 |
+
'data' => $category_data,
|
228 |
+
'before' => '<div class="col-md-12">',
|
229 |
+
'after' => '</div>',
|
230 |
+
));
|
231 |
+
} else {
|
232 |
+
$form->add_element( 'message', 'message', array(
|
233 |
+
'value' => __( 'You don\'t have categorie(s).', WPGMP_TEXT_DOMAIN ),
|
234 |
+
'class' => 'alert alert-info',
|
235 |
+
'before' => '<div class="col-md-12">',
|
236 |
+
'after' => '</div>',
|
237 |
+
));
|
238 |
+
}
|
239 |
+
$form->add_element( 'submit', 'save_entity_data', array(
|
240 |
+
'value' => __( 'Save Location',WPGMP_TEXT_DOMAIN ),
|
241 |
+
));
|
242 |
+
$form->add_element( 'hidden', 'operation', array(
|
243 |
+
'value' => 'save',
|
244 |
+
));
|
245 |
+
if ( isset( $_GET['doaction'] ) and 'edit' == $_GET['doaction'] ) {
|
246 |
+
|
247 |
+
$form->add_element( 'hidden', 'entityID', array(
|
248 |
+
'value' => intval( wp_unslash( $_GET['location_id'] ) ),
|
249 |
+
));
|
250 |
+
}
|
251 |
+
$form->render();
|
252 |
+
$infowindow_message = (isset( $data['location_messages'] ) and ! empty( $data['location_messages'] )) ? $data['location_messages'] : '';
|
253 |
+
$infowindow_disable = (isset( $data['location_settings'] ) and ! empty( $data['location_settings'] )) ? $data['location_settings'] : '';
|
254 |
+
$category_obj = $category_obj->get( array( array( 'group_map_id', '=', intval( wp_unslash( $_GET['group_map_id'] ) ) ) ) );
|
255 |
+
$category = (array) $category_obj[0];
|
256 |
+
|
257 |
+
if ( ! empty( $category->group_marker ) ) {
|
258 |
+
$category_group_marker = $category->group_marker;
|
259 |
+
} else {
|
260 |
+
$category_group_marker = WPGMP_IMAGES.'default_marker.png';
|
261 |
+
}
|
262 |
+
$map_data['map_options'] = array(
|
263 |
+
'center_lat' => (isset( $data['location_latitude'] ) and ! empty( $data['location_latitude'] )) ? $data['location_latitude'] : '',
|
264 |
+
'center_lng' => (isset( $data['location_longitude'] ) and ! empty( $data['location_longitude'] )) ? $data['location_longitude'] : '',
|
265 |
+
);
|
266 |
+
$map_data['places'][] = array(
|
267 |
+
'id' => (isset( $data['location_id'] ) and ! empty( $data['location_id'] )) ? $data['location_id'] : '',
|
268 |
+
'title' => (isset( $data['location_title'] ) and ! empty( $data['location_title'] )) ? $data['location_title'] : '',
|
269 |
+
'content' => $infowindow_message,
|
270 |
+
'location' => array(
|
271 |
+
'icon' => ($category_group_marker),
|
272 |
+
'lat' => (isset( $data['location_latitude'] ) and ! empty( $data['location_latitude'] )) ? $data['location_latitude'] : '',
|
273 |
+
'lng' => (isset( $data['location_longitude'] ) and ! empty( $data['location_longitude'] )) ? $data['location_longitude'] : '',
|
274 |
+
'draggable' => true,
|
275 |
+
'infowindow_default_open' => (isset( $data['location_infowindow_default_open'] ) and ! empty( $data['location_infowindow_default_open'] )) ? $data['location_infowindow_default_open'] : '',
|
276 |
+
'animation' => (isset( $data['location_animation'] ) and ! empty( $data['location_animation'] )) ? $data['location_animation'] : '',
|
277 |
+
'infowindow_disable' => ( 'false' === @$infowindow_disable['hide_infowindow']),
|
278 |
+
'zoom' => (isset( $data['location_zoom'] ) and ! empty( $data['location_zoom'] )) ? $data['location_zoom'] : '',
|
279 |
+
),
|
280 |
+
'categories' => array( array(
|
281 |
+
'id' => $category->group_map_id,
|
282 |
+
'name' => $category->group_map_title,
|
283 |
+
'type' => 'category',
|
284 |
+
'icon' => $category_group_marker,
|
285 |
+
),
|
286 |
+
),
|
287 |
+
);
|
288 |
+
$map_data['page'] = 'edit_location';
|
289 |
+
?>
|
290 |
+
<script type="text/javascript">
|
291 |
+
jQuery(document).ready(function($) {
|
292 |
+
var map = $("#wpgmp_map").maps(<?php echo wp_json_encode( $map_data ); ?>).data('wpgmp_maps');
|
293 |
+
});
|
294 |
+
</script>
|
modules/location/views/manage.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
|
3 |
+
if ( class_exists( 'WP_List_Table_Helper' ) and ! class_exists( 'Wpgmp_Location_Table' ) ) {
|
4 |
+
|
5 |
+
class Wpgmp_Location_Table extends WP_List_Table_Helper { public function __construct($tableinfo) {
|
6 |
+
parent::__construct( $tableinfo ); } }
|
7 |
+
|
8 |
+
// Minimal Configuration :)
|
9 |
+
global $wpdb;
|
10 |
+
$columns = array( 'location_title' => 'Title','location_address' => 'Address','location_latitude' => 'Latitude','location_longitude' => 'Longitude' );
|
11 |
+
$sortable = array( 'location_title','location_address','location_latitude','location_longitude' );
|
12 |
+
$tableinfo = array(
|
13 |
+
'table' => $wpdb->prefix.'map_locations',
|
14 |
+
'textdomain' => WPGMP_TEXT_DOMAIN,
|
15 |
+
'singular_label' => 'location',
|
16 |
+
'plural_label' => 'locations',
|
17 |
+
'admin_listing_page_name' => 'wpgmp_manage_location',
|
18 |
+
'admin_add_page_name' => 'wpgmp_form_location',
|
19 |
+
'primary_col' => 'location_id',
|
20 |
+
'columns' => $columns,
|
21 |
+
'sortable' => $sortable,
|
22 |
+
'per_page' => 200,
|
23 |
+
'actions' => array( 'edit','delete' ),
|
24 |
+
'col_showing_links' => 'location_title',
|
25 |
+
'editrecord_filepath' => WPGMP_VIEWS_PATH.'/location/add_or_edit.php',
|
26 |
+
);
|
27 |
+
return new Wpgmp_Location_Table( $tableinfo );
|
28 |
+
|
29 |
+
}
|
30 |
+
?>
|
modules/map/model.map.php
ADDED
@@ -0,0 +1,207 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class: WPGMP_Model_Map
|
4 |
+
* Menu Order: 2
|
5 |
+
* @author Flipper Code <hello@flippercode.com>
|
6 |
+
* @version 3.0.0
|
7 |
+
* @package Maps
|
8 |
+
*/
|
9 |
+
|
10 |
+
if ( ! class_exists( 'WPGMP_Model_Map' ) ) {
|
11 |
+
|
12 |
+
/**
|
13 |
+
* Map model for CRUD operation.
|
14 |
+
* @package Maps
|
15 |
+
* @author Flipper Code <hello@flippercode.com>
|
16 |
+
*/
|
17 |
+
class WPGMP_Model_Map extends WPGMP_Model_Base {
|
18 |
+
/**
|
19 |
+
* Validations on route properies.
|
20 |
+
* @var array
|
21 |
+
*/
|
22 |
+
protected $validations = array(
|
23 |
+
'map_title' => array( 'req' => 'Please enter map title.' ),
|
24 |
+
'map_height' => array( 'req' => 'Please enter map height.' ),
|
25 |
+
);
|
26 |
+
/**
|
27 |
+
* Intialize map object.
|
28 |
+
*/
|
29 |
+
function __construct() {
|
30 |
+
|
31 |
+
$this->table = TBL_MAP;
|
32 |
+
$this->unique = 'map_id';
|
33 |
+
}
|
34 |
+
/**
|
35 |
+
* Admin menu for CRUD Operation
|
36 |
+
* @return array Admin menu navigation(s).
|
37 |
+
*/
|
38 |
+
function navigation() {
|
39 |
+
return array(
|
40 |
+
'wpgmp_form_map' => __( 'Add Map', WPGMP_TEXT_DOMAIN ),
|
41 |
+
'wpgmp_manage_map' => __( 'Manage Maps', WPGMP_TEXT_DOMAIN ),
|
42 |
+
);
|
43 |
+
|
44 |
+
}
|
45 |
+
/**
|
46 |
+
* Install table associated with map entity.
|
47 |
+
* @return string SQL query to install create_map table.
|
48 |
+
*/
|
49 |
+
function install() {
|
50 |
+
global $wpdb;
|
51 |
+
$create_map = 'CREATE TABLE `'.$wpdb->prefix.'create_map` (
|
52 |
+
`map_id` int(11) NOT NULL AUTO_INCREMENT,
|
53 |
+
`map_title` varchar(255) DEFAULT NULL,
|
54 |
+
`map_width` varchar(255) DEFAULT NULL,
|
55 |
+
`map_height` varchar(255) DEFAULT NULL,
|
56 |
+
`map_zoom_level` varchar(255) DEFAULT NULL,
|
57 |
+
`map_type` varchar(255) DEFAULT NULL,
|
58 |
+
`map_scrolling_wheel` varchar(255) DEFAULT NULL,
|
59 |
+
`map_visual_refresh` varchar(255) DEFAULT NULL,
|
60 |
+
`map_45imagery` varchar(255) DEFAULT NULL,
|
61 |
+
`map_street_view_setting` text DEFAULT NULL,
|
62 |
+
`map_route_direction_setting` text DEFAULT NULL,
|
63 |
+
`map_all_control` text DEFAULT NULL,
|
64 |
+
`map_info_window_setting` text DEFAULT NULL,
|
65 |
+
`style_google_map` text DEFAULT NULL,
|
66 |
+
`map_locations` text DEFAULT NULL,
|
67 |
+
`map_layer_setting` text DEFAULT NULL,
|
68 |
+
`map_polygon_setting` text DEFAULT NULL,
|
69 |
+
`map_polyline_setting` text DEFAULT NULL,
|
70 |
+
`map_cluster_setting` text DEFAULT NULL,
|
71 |
+
`map_overlay_setting` text DEFAULT NULL,
|
72 |
+
`map_geotags` text DEFAULT NULL,
|
73 |
+
`map_infowindow_setting` text DEFAULT NULL,
|
74 |
+
PRIMARY KEY (`map_id`)
|
75 |
+
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;';
|
76 |
+
|
77 |
+
return $create_map;
|
78 |
+
}
|
79 |
+
/**
|
80 |
+
* Get Map(s)
|
81 |
+
* @param array $where Conditional statement.
|
82 |
+
* @return array Array of Map object(s).
|
83 |
+
*/
|
84 |
+
public function fetch($where = array()) {
|
85 |
+
|
86 |
+
$objects = $this->get( $this->table, $where );
|
87 |
+
|
88 |
+
if ( isset( $objects ) ) {
|
89 |
+
foreach ( $objects as $object ) {
|
90 |
+
$object->map_street_view_setting = unserialize( $object->map_street_view_setting );
|
91 |
+
$object->map_route_direction_setting = unserialize( $object->map_route_direction_setting );
|
92 |
+
$object->map_all_control = unserialize( $object->map_all_control );
|
93 |
+
$object->map_info_window_setting = unserialize( $object->map_info_window_setting );
|
94 |
+
$object->style_google_map = unserialize( $object->style_google_map );
|
95 |
+
$object->map_locations = unserialize( $object->map_locations );
|
96 |
+
$object->map_layer_setting = unserialize( $object->map_layer_setting );
|
97 |
+
$object->map_polygon_setting = unserialize( $object->map_polygon_setting );
|
98 |
+
$object->map_polyline_setting = unserialize( $object->map_polyline_setting );
|
99 |
+
$object->map_cluster_setting = unserialize( $object->map_cluster_setting );
|
100 |
+
$object->map_overlay_setting = unserialize( $object->map_overlay_setting );
|
101 |
+
$object->map_infowindow_setting = unserialize( $object->map_infowindow_setting );
|
102 |
+
$object->map_geotags = unserialize( $object->map_geotags );
|
103 |
+
}
|
104 |
+
return $objects;
|
105 |
+
}
|
106 |
+
}
|
107 |
+
/**
|
108 |
+
* Add or Edit Operation.
|
109 |
+
*/
|
110 |
+
function save() {
|
111 |
+
|
112 |
+
$data = array();
|
113 |
+
$entityID = '';
|
114 |
+
|
115 |
+
if ( isset( $_REQUEST['_wpnonce'] ) ) {
|
116 |
+
$nonce = sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ); }
|
117 |
+
|
118 |
+
if ( isset( $nonce ) and ! wp_verify_nonce( $nonce, 'wpgmp-nonce' ) ) {
|
119 |
+
|
120 |
+
die( 'Cheating...' );
|
121 |
+
|
122 |
+
}
|
123 |
+
|
124 |
+
$this->verify( $_POST );
|
125 |
+
|
126 |
+
if ( is_array( $this->errors ) and ! empty( $this->errors ) ) {
|
127 |
+
$this->throw_errors();
|
128 |
+
}
|
129 |
+
|
130 |
+
if ( isset( $_POST['entityID'] ) ) {
|
131 |
+
$entityID = intval( wp_unslash( $_POST['entityID'] ) );
|
132 |
+
}
|
133 |
+
|
134 |
+
if ( '' != sanitize_text_field( $_POST['map_locations'] ) ) {
|
135 |
+
$map_locations = explode( ',', sanitize_text_field( $_POST['map_locations'] ) );
|
136 |
+
} else { $map_locations = array(); }
|
137 |
+
|
138 |
+
$data['map_title'] = sanitize_text_field( wp_unslash( $_POST['map_title'] ) );
|
139 |
+
$data['map_width'] = str_replace( 'px','',sanitize_text_field( wp_unslash( $_POST['map_width'] ) ) );
|
140 |
+
$data['map_height'] = str_replace( 'px','',sanitize_text_field( wp_unslash( $_POST['map_height'] ) ) );
|
141 |
+
$data['map_zoom_level'] = intval( wp_unslash( $_POST['map_zoom_level'] ) );
|
142 |
+
$data['map_type'] = sanitize_text_field( wp_unslash( $_POST['map_type'] ) );
|
143 |
+
$data['map_scrolling_wheel'] = sanitize_text_field( wp_unslash( $_POST['map_scrolling_wheel'] ) );
|
144 |
+
$data['map_45imagery'] = sanitize_text_field( wp_unslash( $_POST['map_45imagery'] ) );
|
145 |
+
$data['map_street_view_setting'] = serialize( wp_unslash( $_POST['map_street_view_setting'] ) );
|
146 |
+
$data['map_route_direction_setting'] = serialize( wp_unslash( $_POST['map_route_direction_setting'] ) );
|
147 |
+
$data['map_all_control'] = serialize( wp_unslash( $_POST['map_all_control'] ) );
|
148 |
+
$data['map_info_window_setting'] = serialize( wp_unslash( $_POST['map_info_window_setting'] ) );
|
149 |
+
$data['style_google_map'] = serialize( wp_unslash( $_POST['style_google_map'] ) );
|
150 |
+
$data['map_locations'] = serialize( wp_unslash( $map_locations ) );
|
151 |
+
$data['map_layer_setting'] = serialize( wp_unslash( $_POST['map_layer_setting'] ) );
|
152 |
+
$data['map_polygon_setting'] = serialize( wp_unslash( $_POST['map_polygon_setting'] ) );
|
153 |
+
$data['map_polyline_setting'] = serialize( wp_unslash( $_POST['map_polyline_setting'] ) );
|
154 |
+
$data['map_cluster_setting'] = serialize( wp_unslash( $_POST['map_cluster_setting'] ) );
|
155 |
+
$data['map_overlay_setting'] = serialize( wp_unslash( $_POST['map_overlay_setting'] ) );
|
156 |
+
$data['map_infowindow_setting'] = serialize( wp_unslash( $_POST['map_infowindow_setting'] ) );
|
157 |
+
$data['map_geotags'] = serialize( wp_unslash( $_POST['map_geotags'] ) );
|
158 |
+
|
159 |
+
if ( $entityID > 0 ) {
|
160 |
+
$where[ $this->unique ] = $entityID;
|
161 |
+
} else {
|
162 |
+
$where = '';
|
163 |
+
}
|
164 |
+
|
165 |
+
$result = WPGMP_Database::insert_or_update( $this->table, $data, $where );
|
166 |
+
if ( false === $result ) {
|
167 |
+
$response['error'] = __( 'Something went wrong. Please try again.',WPGMP_TEXT_DOMAIN );
|
168 |
+
} elseif ( $entityID > 0 ) {
|
169 |
+
$response['success'] = __( 'Map updated successfully',WPGMP_TEXT_DOMAIN );
|
170 |
+
} else {
|
171 |
+
$response['success'] = __( 'Map added successfully.',WPGMP_TEXT_DOMAIN );
|
172 |
+
}
|
173 |
+
return $response;
|
174 |
+
}
|
175 |
+
/**
|
176 |
+
* Delete map object by id.
|
177 |
+
*/
|
178 |
+
function delete() {
|
179 |
+
if ( isset( $_GET['map_id'] ) ) {
|
180 |
+
$id = intval( wp_unslash( $_GET['map_id'] ) );
|
181 |
+
$connection = WPGMP_Database::connect();
|
182 |
+
$this->query = $connection->prepare( "DELETE FROM $this->table WHERE $this->unique='%d'", $id );
|
183 |
+
return WPGMP_Database::non_query( $this->query, $connection );
|
184 |
+
}
|
185 |
+
}
|
186 |
+
/**
|
187 |
+
* Clone map object by id.
|
188 |
+
*/
|
189 |
+
function copy($map_id) {
|
190 |
+
if ( isset( $map_id ) ) {
|
191 |
+
$id = intval( wp_unslash( $map_id ) );
|
192 |
+
$map = $this->get( $this->table,array( array( 'map_id', '=', $id ) ) );
|
193 |
+
$data = array();
|
194 |
+
foreach ( $map[0] as $column => $value ) {
|
195 |
+
|
196 |
+
if ( $column == 'map_id' ) {
|
197 |
+
continue; } else if ( $column == 'map_title' ) {
|
198 |
+
$data[$column] = $value.' '.__( 'Copy',WPGMP_TEXT_DOMAIN );
|
199 |
+
} else { $data[$column] = $value; }
|
200 |
+
}
|
201 |
+
|
202 |
+
$result = WPGMP_Database::insert_or_update( $this->table, $data );
|
203 |
+
}
|
204 |
+
}
|
205 |
+
|
206 |
+
}
|
207 |
+
}
|
modules/map/views/form.php
ADDED
@@ -0,0 +1,55 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Template for Add & Edit Map
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @package Maps
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( isset( $_REQUEST['_wpnonce'] ) ) {
|
9 |
+
|
10 |
+
$nonce = sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) );
|
11 |
+
|
12 |
+
if ( ! wp_verify_nonce( $nonce, 'wpgmp-nonce' ) ) {
|
13 |
+
|
14 |
+
die( 'Cheating...' );
|
15 |
+
|
16 |
+
} else {
|
17 |
+
$data = $_POST;
|
18 |
+
}
|
19 |
+
}
|
20 |
+
global $wpdb;
|
21 |
+
$modelFactory = new FactoryModelWPGMP();
|
22 |
+
$map_obj = $modelFactory->create_object( 'map' );
|
23 |
+
if ( isset( $_GET['doaction'] ) and 'edit' == $_GET['doaction'] and isset( $_GET['map_id'] ) ) {
|
24 |
+
$map_obj = $map_obj->fetch( array( array( 'map_id', '=', intval( wp_unslash( $_GET['map_id'] ) ) ) ) );
|
25 |
+
$data = (array) $map_obj[0];
|
26 |
+
} elseif ( ! isset( $_GET['doaction'] ) and isset( $response['success'] ) ) {
|
27 |
+
// Reset $_POST object for antoher entry.
|
28 |
+
unset( $data );
|
29 |
+
}
|
30 |
+
|
31 |
+
$form = new Responsive_Markup();
|
32 |
+
$form->set_header( __( 'Map Information', WPGMP_TEXT_DOMAIN ), $response, __( 'Manage Maps', WPGMP_TEXT_DOMAIN ), 'wpgmp_manage_map' );
|
33 |
+
include( 'map-forms/general-setting-form.php' );
|
34 |
+
include( 'map-forms/map-center-settings.php' );
|
35 |
+
include( 'map-forms/locations-form.php' );
|
36 |
+
include( 'map-forms/control-setting-form.php' );
|
37 |
+
include( 'map-forms/control-position-style-form.php' );
|
38 |
+
include( 'map-forms/street-view-setting-form.php' );
|
39 |
+
include( 'map-forms/layers-form.php' );
|
40 |
+
$form->add_element( 'submit', 'save_entity_data', array(
|
41 |
+
'value' => __( 'Save Map',WPGMP_TEXT_DOMAIN ),
|
42 |
+
));
|
43 |
+
$form->add_element( 'hidden', 'operation', array(
|
44 |
+
'value' => 'save',
|
45 |
+
));
|
46 |
+
$form->add_element( 'hidden', 'map_locations', array(
|
47 |
+
'value' => '',
|
48 |
+
));
|
49 |
+
if ( isset( $_GET['doaction'] ) and 'edit' == $_GET['doaction'] and isset( $_GET['map_id'] ) ) {
|
50 |
+
|
51 |
+
$form->add_element( 'hidden', 'entityID', array(
|
52 |
+
'value' => intval( wp_unslash( $_GET['map_id'] ) ),
|
53 |
+
));
|
54 |
+
}
|
55 |
+
$form->render();
|
modules/map/views/manage.php
ADDED
@@ -0,0 +1,67 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Manage Maps
|
4 |
+
* @package Maps
|
5 |
+
*/
|
6 |
+
|
7 |
+
if ( class_exists( 'WP_List_Table_Helper' ) and ! class_exists( 'Wpgmp_Maps_Table' ) ) {
|
8 |
+
|
9 |
+
/**
|
10 |
+
* Display maps manager.
|
11 |
+
*/
|
12 |
+
class Wpgmp_Maps_Table extends WP_List_Table_Helper {
|
13 |
+
/**
|
14 |
+
* Intialize manage category table.
|
15 |
+
* @param array $tableinfo Table's properties.
|
16 |
+
*/
|
17 |
+
public function __construct($tableinfo) {
|
18 |
+
parent::__construct( $tableinfo ); }
|
19 |
+
/**
|
20 |
+
* Output for Shortcode column.
|
21 |
+
* @param array $item Map Row.
|
22 |
+
*/
|
23 |
+
public function column_shortcodes($item) {
|
24 |
+
echo '[put_wpgm id='.$item->map_id.']'; }
|
25 |
+
/**
|
26 |
+
* Clone of the map.
|
27 |
+
* @param integer $item Map ID.
|
28 |
+
*/
|
29 |
+
public function copy() {
|
30 |
+
$map_id = intval( $_GET['map_id'] );
|
31 |
+
$modelFactory = new FactoryModelWPGMP();
|
32 |
+
$map_obj = $modelFactory->create_object( 'map' );
|
33 |
+
$map = $map_obj->copy( $map_id );
|
34 |
+
$this->prepare_items();
|
35 |
+
$this->listing();
|
36 |
+
}
|
37 |
+
|
38 |
+
}
|
39 |
+
|
40 |
+
global $wpdb;
|
41 |
+
$columns = array(
|
42 |
+
'map_title' => 'Title',
|
43 |
+
'map_width' => 'Map Width',
|
44 |
+
'map_height' => 'Map Height',
|
45 |
+
'map_zoom_level' => 'Map Zoom Level',
|
46 |
+
'map_type' => 'Map Type',
|
47 |
+
'shortcodes' => 'Shortcodes',
|
48 |
+
);
|
49 |
+
$sortable = array( 'map_title','map_width','map_height','map_zoom_level','map_type' );
|
50 |
+
$tableinfo = array(
|
51 |
+
'table' => $wpdb->prefix.'create_map',
|
52 |
+
'textdomain' => WPGMP_TEXT_DOMAIN,
|
53 |
+
'singular_label' => 'map',
|
54 |
+
'plural_label' => 'maps',
|
55 |
+
'admin_listing_page_name' => 'wpgmp_manage_map',
|
56 |
+
'admin_add_page_name' => 'wpgmp_form_map',
|
57 |
+
'primary_col' => 'map_id',
|
58 |
+
'columns' => $columns,
|
59 |
+
'sortable' => $sortable,
|
60 |
+
'per_page' => 20,
|
61 |
+
'actions' => array( 'edit','delete','copy' ),
|
62 |
+
'col_showing_links' => 'map_title',
|
63 |
+
'searchExclude' => array( 'shortcodes' ),
|
64 |
+
'editrecord_filepath' => WPGMP_VIEWS_PATH.'/map/add_or_edit.php',
|
65 |
+
);
|
66 |
+
$obj = new Wpgmp_Maps_Table( $tableinfo );
|
67 |
+
}
|
modules/map/views/map-forms/control-position-style-form.php
ADDED
@@ -0,0 +1,70 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Contro Positioning over google maps.
|
4 |
+
* @package Maps
|
5 |
+
* @author Flipper Code <hello@flippercode.com>
|
6 |
+
*/
|
7 |
+
|
8 |
+
$positions = array(
|
9 |
+
'TOP_LEFT' => 'Top Left',
|
10 |
+
'TOP_RIGHT' => 'Top Right',
|
11 |
+
'LEFT_TOP' => 'Left Top',
|
12 |
+
'RIGHT_TOP' => 'Right Top',
|
13 |
+
'TOP_CENTER' => 'Top Center',
|
14 |
+
'LEFT_CENTER' => 'Left Center',
|
15 |
+
'RIGHT_CENTER' => 'Right Center',
|
16 |
+
'BOTTOM_RIGHT' => 'Bottom Right',
|
17 |
+
'LEFT_BOTTOM' => 'Left Bottom',
|
18 |
+
'RIGHT_BOTTOM' => 'Right Bottom',
|
19 |
+
'BOTTOM_CENTER' => 'Bottom Center',
|
20 |
+
'BOTTOM_LEFT' => 'Bottom Left',
|
21 |
+
'BOTTOM_RIGHT' => 'Bottom Right',
|
22 |
+
);
|
23 |
+
$form->add_element( 'group', 'map_control_position_setting', array(
|
24 |
+
'value' => __( 'Control Position(s) Settings', WPGMP_TEXT_DOMAIN ),
|
25 |
+
'before' => '<div class="col-md-12">',
|
26 |
+
'after' => '</div>',
|
27 |
+
));
|
28 |
+
$form->add_element( 'select', 'map_all_control[pan_control_position]', array(
|
29 |
+
'lable' => __( 'Pan Control', WPGMP_TEXT_DOMAIN ),
|
30 |
+
'current' => $data['map_all_control']['pan_control_position'],
|
31 |
+
'desc' => __( 'Please select position of pan control.', WPGMP_TEXT_DOMAIN ),
|
32 |
+
'options' => $positions,
|
33 |
+
));
|
34 |
+
$form->add_element( 'select', 'map_all_control[zoom_control_position]', array(
|
35 |
+
'lable' => __( 'Zoom Control', WPGMP_TEXT_DOMAIN ),
|
36 |
+
'current' => $data['map_all_control']['zoom_control_position'],
|
37 |
+
'desc' => __( 'Please select position of zoom control.', WPGMP_TEXT_DOMAIN ),
|
38 |
+
'options' => $positions,
|
39 |
+
));
|
40 |
+
$zoom_control_style = array( 'LARGE' => 'Large','SMALL' => 'Small' );
|
41 |
+
$form->add_element( 'select', 'map_all_control[zoom_control_style]', array(
|
42 |
+
'lable' => __( 'Zoom Control Style', WPGMP_TEXT_DOMAIN ),
|
43 |
+
'current' => $data['map_all_control']['zoom_control_style'],
|
44 |
+
'desc' => __( 'Please select style of zoom control.', WPGMP_TEXT_DOMAIN ),
|
45 |
+
'options' => $zoom_control_style,
|
46 |
+
));
|
47 |
+
|
48 |
+
$form->add_element( 'select', 'map_all_control[map_type_control_position]', array(
|
49 |
+
'lable' => __( 'Map Type Control', WPGMP_TEXT_DOMAIN ),
|
50 |
+
'default_value' => 'TOP_RIGHT',
|
51 |
+
'current' => $data['map_all_control']['map_type_control_position'],
|
52 |
+
'desc' => __( 'Please select position of map type control.', WPGMP_TEXT_DOMAIN ),
|
53 |
+
'options' => $positions,
|
54 |
+
));
|
55 |
+
|
56 |
+
$map_type_control_style = array( 'HORIZONTAL_BAR' => 'Horizontal Bar', 'DROPDOWN_MENU' => 'Dropdown Menu' );
|
57 |
+
$form->add_element( 'select', 'map_all_control[map_type_control_style]', array(
|
58 |
+
'lable' => __( 'Map Type Control Style', WPGMP_TEXT_DOMAIN ),
|
59 |
+
'current' => $data['map_all_control']['map_type_control_style'],
|
60 |
+
'desc' => __( 'Please select style of map type control.', WPGMP_TEXT_DOMAIN ),
|
61 |
+
'options' => $map_type_control_style,
|
62 |
+
));
|
63 |
+
|
64 |
+
$form->add_element( 'select', 'map_all_control[street_view_control_position]', array(
|
65 |
+
'lable' => __( 'Street View Control', WPGMP_TEXT_DOMAIN ),
|
66 |
+
'current' => $data['map_all_control']['street_view_control_position'],
|
67 |
+
'desc' => __( 'Please select position of street view control.', WPGMP_TEXT_DOMAIN ),
|
68 |
+
'options' => $positions,
|
69 |
+
));
|
70 |
+
|
modules/map/views/map-forms/control-setting-form.php
ADDED
@@ -0,0 +1,59 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Control Setting(s).
|
4 |
+
* @package Maps
|
5 |
+
*/
|
6 |
+
|
7 |
+
$form->add_element( 'group', 'map_control_setting', array(
|
8 |
+
'value' => __( 'Control Setting', WPGMP_TEXT_DOMAIN ),
|
9 |
+
'before' => '<div class="col-md-12">',
|
10 |
+
'after' => '</div>',
|
11 |
+
));
|
12 |
+
$form->add_element( 'checkbox', 'map_all_control[pan_control]', array(
|
13 |
+
'lable' => __( 'Turn Off Pan Control', WPGMP_TEXT_DOMAIN ),
|
14 |
+
'value' => 'false',
|
15 |
+
'id' => 'wpgmp_pan_control',
|
16 |
+
'current' => $data['map_all_control']['pan_control'],
|
17 |
+
'desc' => __( 'Please check to disable pan control.', WPGMP_TEXT_DOMAIN ),
|
18 |
+
'class' => 'chkbox_class',
|
19 |
+
));
|
20 |
+
$form->add_element( 'checkbox', 'map_all_control[zoom_control]', array(
|
21 |
+
'lable' => __( 'Turn Off Zoom Control', WPGMP_TEXT_DOMAIN ),
|
22 |
+
'value' => 'false',
|
23 |
+
'id' => 'wpgmp_zoom_control',
|
24 |
+
'current' => $data['map_all_control']['zoom_control'],
|
25 |
+
'desc' => __( 'Please check to disable zoom control.', WPGMP_TEXT_DOMAIN ),
|
26 |
+
'class' => 'chkbox_class',
|
27 |
+
));
|
28 |
+
$form->add_element( 'checkbox', 'map_all_control[map_type_control]', array(
|
29 |
+
'lable' => __( 'Turn Off Map Type Control', WPGMP_TEXT_DOMAIN ),
|
30 |
+
'value' => 'false',
|
31 |
+
'id' => 'map_type_control',
|
32 |
+
'current' => $data['map_all_control']['map_type_control'],
|
33 |
+
'desc' => __( 'Please check to disable map type control.', WPGMP_TEXT_DOMAIN ),
|
34 |
+
'class' => 'chkbox_class',
|
35 |
+
));
|
36 |
+
$form->add_element( 'checkbox', 'map_all_control[scale_control]', array(
|
37 |
+
'lable' => __( 'Turn Off Scale Control', WPGMP_TEXT_DOMAIN ),
|
38 |
+
'value' => 'false',
|
39 |
+
'id' => 'scale_control',
|
40 |
+
'current' => $data['map_all_control']['scale_control'],
|
41 |
+
'desc' => __( 'Please check to disable scale control.', WPGMP_TEXT_DOMAIN ),
|
42 |
+
'class' => 'chkbox_class',
|
43 |
+
));
|
44 |
+
$form->add_element( 'checkbox', 'map_all_control[street_view_control]', array(
|
45 |
+
'lable' => __( 'Turn Off Street View Control', WPGMP_TEXT_DOMAIN ),
|
46 |
+
'value' => 'false',
|
47 |
+
'id' => 'wpgmp_street_view_control',
|
48 |
+
'current' => $data['map_all_control']['street_view_control'],
|
49 |
+
'desc' => __( 'Please check to disable street view control.', WPGMP_TEXT_DOMAIN ),
|
50 |
+
'class' => 'chkbox_class',
|
51 |
+
));
|
52 |
+
$form->add_element( 'checkbox', 'map_all_control[overview_map_control]', array(
|
53 |
+
'lable' => __( 'Turn Off Overview Map Control', WPGMP_TEXT_DOMAIN ),
|
54 |
+
'value' => 'false',
|
55 |
+
'id' => 'overview_map_control',
|
56 |
+
'current' => $data['map_all_control']['overview_map_control'],
|
57 |
+
'desc' => __( 'Please check to disable overview map control.', WPGMP_TEXT_DOMAIN ),
|
58 |
+
'class' => 'chkbox_class',
|
59 |
+
));
|
modules/map/views/map-forms/general-setting-form.php
ADDED
@@ -0,0 +1,134 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Map's general setting(s).
|
4 |
+
* @package Maps
|
5 |
+
*/
|
6 |
+
|
7 |
+
|
8 |
+
$form->add_element( 'text', 'map_title', array(
|
9 |
+
'lable' => __( 'Map Title', WPGMP_TEXT_DOMAIN ),
|
10 |
+
'value' => $data['map_title'],
|
11 |
+
'desc' => __( 'Enter here the map title.', WPGMP_TEXT_DOMAIN ),
|
12 |
+
'required' => true,
|
13 |
+
'placeholder' => '',
|
14 |
+
));
|
15 |
+
$form->add_element( 'text', 'map_width', array(
|
16 |
+
'lable' => __( 'Map Width', WPGMP_TEXT_DOMAIN ),
|
17 |
+
'value' => $data['map_width'],
|
18 |
+
'desc' => __( 'Enter here the map width in pixel. Leave it blank for 100% width.', WPGMP_TEXT_DOMAIN ),
|
19 |
+
'placeholder' => '',
|
20 |
+
));
|
21 |
+
$form->add_element( 'text', 'map_height', array(
|
22 |
+
'lable' => __( 'Map Height', WPGMP_TEXT_DOMAIN ),
|
23 |
+
'value' => $data['map_height'],
|
24 |
+
'desc' => __( 'Enter here the map height in pixel.', WPGMP_TEXT_DOMAIN ),
|
25 |
+
'required' => true,
|
26 |
+
'placeholder' => '',
|
27 |
+
));
|
28 |
+
$language = array(
|
29 |
+
'en' => 'ENGLISH',
|
30 |
+
'ar' => 'ARABIC',
|
31 |
+
'eu' => 'BASQUE',
|
32 |
+
'bg' => 'BULGARIAN',
|
33 |
+
'bn' => 'BENGALI',
|
34 |
+
'ca' => 'CATALAN',
|
35 |
+
'cs' => 'CZECH',
|
36 |
+
'da' => 'DANISH',
|
37 |
+
'de' => 'GERMAN',
|
38 |
+
'el' => 'GREEK',
|
39 |
+
'en-AU' => 'ENGLISH (AUSTRALIAN)',
|
40 |
+
'en-GB' => 'ENGLISH (GREAT BRITAIN)',
|
41 |
+
'es' => 'SPANISH',
|
42 |
+
'fa' => 'FARSI',
|
43 |
+
'fi' => 'FINNISH',
|
44 |
+
'fil' => 'FILIPINO',
|
45 |
+
'fr' => 'FRENCH',
|
46 |
+
'gl' => 'GALICIAN',
|
47 |
+
'gu' => 'GUJARATI',
|
48 |
+
'hi' => 'HINDI',
|
49 |
+
'hr' => 'CROATIAN',
|
50 |
+
'hu' => 'HUNGARIAN',
|
51 |
+
'id' => 'INDONESIAN',
|
52 |
+
'it' => 'ITALIAN',
|
53 |
+
'iw' => 'HEBREW',
|
54 |
+
'ja' => 'JAPANESE',
|
55 |
+
'kn' => 'KANNADA',
|
56 |
+
'ko' => 'KOREAN',
|
57 |
+
'lt' => 'LITHUANIAN',
|
58 |
+
'lv' => 'LATVIAN',
|
59 |
+
'ml' => 'MALAYALAM',
|
60 |
+
'mr' => 'MARATHI',
|
61 |
+
'nl' => 'DUTCH',
|
62 |
+
'no' => 'NORWEGIAN',
|
63 |
+
'pl' => 'POLISH',
|
64 |
+
'pt' => 'PORTUGUESE',
|
65 |
+
'pt-BR' => 'PORTUGUESE (BRAZIL)',
|
66 |
+
'pt-PT' => 'PORTUGUESE (PORTUGAL)',
|
67 |
+
'ro' => 'ROMANIAN',
|
68 |
+
'ru' => 'RUSSIAN',
|
69 |
+
'sk' => 'SLOVAK',
|
70 |
+
'sl' => 'SLOVENIAN',
|
71 |
+
'sr' => 'SERBIAN',
|
72 |
+
'sv' => 'SWEDISH',
|
73 |
+
'tl' => 'TAGALOG',
|
74 |
+
'ta' => 'TAMIL',
|
75 |
+
'te' => 'TELUGU',
|
76 |
+
'th' => 'THAI',
|
77 |
+
'tr' => 'TURKISH',
|
78 |
+
'uk' => 'UKRAINIAN',
|
79 |
+
'vi' => 'VIETNAMESE',
|
80 |
+
'zh-CN' => 'CHINESE (SIMPLIFIED)',
|
81 |
+
'zh-TW' => 'CHINESE (TRADITIONAL)',
|
82 |
+
);
|
83 |
+
/*
|
84 |
+
$form->add_element( 'select', 'map_all_control[wpgmp_language]', array(
|
85 |
+
'lable' => __( 'Map Language', WPGMP_TEXT_DOMAIN ),
|
86 |
+
'current' => $data['map_all_control']['wpgmp_language'],
|
87 |
+
'desc' => __( 'Choose your language for map. Default is English.', WPGMP_TEXT_DOMAIN ),
|
88 |
+
'options' => $language,$currentLanguage,
|
89 |
+
));
|
90 |
+
*/
|
91 |
+
$zoom_level = array();
|
92 |
+
for ( $i = 1; $i < 20; $i++ ) {
|
93 |
+
$zoom_level[ $i ] = $i;
|
94 |
+
}
|
95 |
+
$form->add_element( 'select', 'map_zoom_level', array(
|
96 |
+
'lable' => __( 'Map Zoom Level', WPGMP_TEXT_DOMAIN ),
|
97 |
+
'current' => $data['map_zoom_level'],
|
98 |
+
'desc' => __( 'Available options 1 to 19.', WPGMP_TEXT_DOMAIN ),
|
99 |
+
'options' => $zoom_level,
|
100 |
+
));
|
101 |
+
$map_type = array( 'ROADMAP' => 'ROADMAP','SATELLITE' => 'SATELLITE','HYBRID' => 'HYBRID','TERRAIN' => 'TERRAIN' );
|
102 |
+
$form->add_element( 'select', 'map_type', array(
|
103 |
+
'lable' => __( 'Map Type', WPGMP_TEXT_DOMAIN ),
|
104 |
+
'current' => $data['map_type'],
|
105 |
+
'desc' => __( 'Available options 1 to 19.', WPGMP_TEXT_DOMAIN ),
|
106 |
+
'options' => $map_type,
|
107 |
+
));
|
108 |
+
|
109 |
+
$form->add_element( 'checkbox', 'map_scrolling_wheel', array(
|
110 |
+
'lable' => __( 'Turn Off Scrolling Wheel', WPGMP_TEXT_DOMAIN ),
|
111 |
+
'value' => 'false',
|
112 |
+
'id' => 'wpgmp_map_scrolling_wheel',
|
113 |
+
'current' => $data['map_scrolling_wheel'],
|
114 |
+
'desc' => __( 'Please check to disable scroll wheel zoom.', WPGMP_TEXT_DOMAIN ),
|
115 |
+
'class' => 'chkbox_class ',
|
116 |
+
));
|
117 |
+
$form->add_element( 'checkbox', 'map_all_control[map_draggable]', array(
|
118 |
+
'lable' => __( 'Map Draggable', WPGMP_TEXT_DOMAIN ),
|
119 |
+
'value' => 'false',
|
120 |
+
'id' => 'wpgmp_map_draggable',
|
121 |
+
'current' => $data['map_all_control']['map_draggable'],
|
122 |
+
'desc' => __( 'Please check to disable map draggable.', WPGMP_TEXT_DOMAIN ),
|
123 |
+
'class' => 'chkbox_class',
|
124 |
+
));
|
125 |
+
|
126 |
+
$form->add_element( 'checkbox', 'map_45imagery', array(
|
127 |
+
'lable' => __( '45° Imagery', WPGMP_TEXT_DOMAIN ),
|
128 |
+
'value' => '45',
|
129 |
+
'id' => 'wpgmp_map_45imagery',
|
130 |
+
'current' => $data['map_45imagery'],
|
131 |
+
'desc' => __( 'Apply 45° Imagery ? (only available for map type SATELLITE and HYBRID).', WPGMP_TEXT_DOMAIN ),
|
132 |
+
'class' => 'chkbox_class',
|
133 |
+
));
|
134 |
+
|
modules/map/views/map-forms/layers-form.php
ADDED
@@ -0,0 +1,47 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Contro Positioning over google maps.
|
4 |
+
* @package Maps
|
5 |
+
* @author Flipper Code <hello@flippercode.com>
|
6 |
+
*/
|
7 |
+
|
8 |
+
$form->add_element( 'group', 'map_control_layers', array(
|
9 |
+
'value' => __( 'Layers Settings', WPGMP_TEXT_DOMAIN ),
|
10 |
+
'before' => '<div class="col-md-12">',
|
11 |
+
'after' => '</div>',
|
12 |
+
));
|
13 |
+
$form->add_element( 'group', 'map_control_layers', array(
|
14 |
+
'value' => __( 'Layers Settings', WPGMP_TEXT_DOMAIN ),
|
15 |
+
'before' => '<div class="col-md-12">',
|
16 |
+
'after' => '</div>',
|
17 |
+
));
|
18 |
+
|
19 |
+
|
20 |
+
|
21 |
+
$form->add_element( 'checkbox', 'map_layer_setting[choose_layer][traffic_layer]', array(
|
22 |
+
'lable' => __( 'Traffic Layer', WPGMP_TEXT_DOMAIN ),
|
23 |
+
'value' => 'TrafficLayer',
|
24 |
+
'id' => 'wpgmp_traffic_layer',
|
25 |
+
'current' => $data['map_layer_setting']['choose_layer']['traffic_layer'],
|
26 |
+
'desc' => __( 'Please check to enable traffic Layer.', WPGMP_TEXT_DOMAIN ),
|
27 |
+
'class' => 'chkbox_class',
|
28 |
+
));
|
29 |
+
|
30 |
+
$form->add_element( 'checkbox', 'map_layer_setting[choose_layer][transit_layer]', array(
|
31 |
+
'lable' => __( 'Transit Layer', WPGMP_TEXT_DOMAIN ),
|
32 |
+
'value' => 'TransitLayer',
|
33 |
+
'id' => 'wpgmp_transit_layer',
|
34 |
+
'current' => $data['map_layer_setting']['choose_layer']['transit_layer'],
|
35 |
+
'desc' => __( 'Please check to enable Transit Layer.', WPGMP_TEXT_DOMAIN ),
|
36 |
+
'class' => 'chkbox_class',
|
37 |
+
));
|
38 |
+
|
39 |
+
|
40 |
+
$form->add_element( 'checkbox', 'map_layer_setting[choose_layer][bicycling_layer]', array(
|
41 |
+
'lable' => __( 'Bicycling Layer', WPGMP_TEXT_DOMAIN ),
|
42 |
+
'value' => 'BicyclingLayer',
|
43 |
+
'id' => 'wpgmp_bicycling_layer',
|
44 |
+
'current' => $data['map_layer_setting']['choose_layer']['bicycling_layer'],
|
45 |
+
'desc' => __( 'Please check to enable Bicycling Layer.', WPGMP_TEXT_DOMAIN ),
|
46 |
+
'class' => 'chkbox_class',
|
47 |
+
));
|
modules/map/views/map-forms/locations-form.php
ADDED
@@ -0,0 +1,66 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Location listings for maps.
|
4 |
+
* @package Maps
|
5 |
+
*/
|
6 |
+
|
7 |
+
global $wpdb;
|
8 |
+
$modelFactory = new FactoryModelWPGMP();
|
9 |
+
$category = $modelFactory->create_object( 'group_map' );
|
10 |
+
$location = $modelFactory->create_object( 'location' );
|
11 |
+
$locations = $location->fetch();
|
12 |
+
$categories = $category->fetch();
|
13 |
+
if ( ! empty( $categories ) ) {
|
14 |
+
$categories_data = array();
|
15 |
+
foreach ( $categories as $cat ) {
|
16 |
+
$categories_data[ $cat->group_map_id ] = $cat->group_map_title;
|
17 |
+
}
|
18 |
+
}
|
19 |
+
if ( ! empty( $locations ) ) {
|
20 |
+
$all_locations = array();
|
21 |
+
foreach ( $locations as $loc ) {
|
22 |
+
$assigned_categories = array();
|
23 |
+
if ( isset( $loc->location_group_map ) and is_array( $loc->location_group_map ) ) {
|
24 |
+
foreach ( $loc->location_group_map as $c => $cat ) {
|
25 |
+
$assigned_categories[] = $categories_data[ $cat ];
|
26 |
+
}
|
27 |
+
}
|
28 |
+
$assigned_categories = implode( ',',$assigned_categories );
|
29 |
+
$loc_checkbox = $form->field_checkbox('map_locations[]',array(
|
30 |
+
'value' => $loc->location_id,
|
31 |
+
'current' => ((in_array( $loc->location_id, (array) $data['map_locations'] )) ? $loc->location_id : ''),
|
32 |
+
'class' => 'chkbox_class',
|
33 |
+
'before' => '<div class="col-md-1">',
|
34 |
+
'after' => '</div>',
|
35 |
+
));
|
36 |
+
$all_locations[] = array( $loc_checkbox,$loc->location_title,$loc->location_address, $assigned_categories );
|
37 |
+
}
|
38 |
+
}
|
39 |
+
|
40 |
+
$table_group = $form->field_html('map_location_listing',array(
|
41 |
+
'html' => "<h4>".__( 'Choose Locations', WPGMP_TEXT_DOMAIN )."</h4>"
|
42 |
+
));
|
43 |
+
|
44 |
+
$table_group .= $form->field_select('select_all',array(
|
45 |
+
'options' => array(
|
46 |
+
'' => __('Choose',WPGMP_TEXT_DOMAIN),
|
47 |
+
'select_all' => __('Select All',WPGMP_TEXT_DOMAIN),
|
48 |
+
'deselect_all' => __('Deselect All',WPGMP_TEXT_DOMAIN)
|
49 |
+
),
|
50 |
+
'class' => 'col-md-2'
|
51 |
+
));
|
52 |
+
|
53 |
+
$form->add_element('html','map_location_listing_div',array(
|
54 |
+
'html' =>$table_group,
|
55 |
+
'before' => '<div class="col-md-12 wpgmp_location_selection alert alert-info">',
|
56 |
+
'after' => '</div>',
|
57 |
+
));
|
58 |
+
|
59 |
+
$form->add_element( 'table', 'map_selected_locations', array(
|
60 |
+
'heading' => array( 'Select','Title','Address', 'Category' ),
|
61 |
+
'data' => $all_locations,
|
62 |
+
'before' => '<div class="col-md-12">',
|
63 |
+
'after' => '</div>',
|
64 |
+
'id' => 'wpgmp_google_map_data_table',
|
65 |
+
'current' => $data['map_locations'],
|
66 |
+
));
|
modules/map/views/map-forms/map-center-settings.php
ADDED
@@ -0,0 +1,26 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Map's Center Location setting(s).
|
4 |
+
* @package Maps
|
5 |
+
*/
|
6 |
+
|
7 |
+
$form->add_element( 'group', 'map_center_setting', array(
|
8 |
+
'value' => __( 'Map\'s Center', WPGMP_TEXT_DOMAIN ),
|
9 |
+
'before' => '<div class="col-md-12">',
|
10 |
+
'after' => '</div>',
|
11 |
+
));
|
12 |
+
|
13 |
+
$form->add_element( 'text', 'map_all_control[map_center_latitude]', array(
|
14 |
+
'lable' => __( 'Center Latitude', WPGMP_TEXT_DOMAIN ),
|
15 |
+
'value' => $data['map_all_control']['map_center_latitude'],
|
16 |
+
'desc' => __( 'Enter here the center latitude.', WPGMP_TEXT_DOMAIN ),
|
17 |
+
'placeholder' => '',
|
18 |
+
));
|
19 |
+
$form->add_element( 'text', 'map_all_control[map_center_longitude]', array(
|
20 |
+
'lable' => __( 'Center Longitude', WPGMP_TEXT_DOMAIN ),
|
21 |
+
'value' => $data['map_all_control']['map_center_longitude'],
|
22 |
+
'desc' => __( 'Enter here the center longitude.', WPGMP_TEXT_DOMAIN ),
|
23 |
+
'placeholder' => '',
|
24 |
+
));
|
25 |
+
|
26 |
+
|
modules/map/views/map-forms/street-view-setting-form.php
ADDED
@@ -0,0 +1,83 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Contro Positioning over google maps.
|
4 |
+
* @package Maps
|
5 |
+
* @author Flipper Code <hello@flippercode.com>
|
6 |
+
*/
|
7 |
+
|
8 |
+
$form->add_element( 'group', 'map_street_view_setting', array(
|
9 |
+
'value' => __( 'Street View Settings', WPGMP_TEXT_DOMAIN ),
|
10 |
+
'before' => '<div class="col-md-12">',
|
11 |
+
'after' => '</div>',
|
12 |
+
));
|
13 |
+
|
14 |
+
$form->add_element( 'checkbox', 'map_street_view_setting[street_control]', array(
|
15 |
+
'lable' => __( 'Turn On Street View', WPGMP_TEXT_DOMAIN ),
|
16 |
+
'value' => 'true',
|
17 |
+
'id' => 'wpgmp_street_control',
|
18 |
+
'current' => $data['map_street_view_setting']['street_control'],
|
19 |
+
'desc' => __( 'Please check to enable Street View control.', WPGMP_TEXT_DOMAIN ),
|
20 |
+
'class' => 'chkbox_class switch_onoff',
|
21 |
+
'data' => array( 'target' => '.street_view_setting' ),
|
22 |
+
));
|
23 |
+
|
24 |
+
$form->add_element( 'checkbox', 'map_street_view_setting[street_view_close_button]', array(
|
25 |
+
'lable' => __( 'Turn On Close Button.', WPGMP_TEXT_DOMAIN ),
|
26 |
+
'value' => 'true',
|
27 |
+
'id' => 'wpgmp_street_view_close_button',
|
28 |
+
'current' => $data['map_street_view_setting']['street_view_close_button'],
|
29 |
+
'desc' => __( 'Please check to enable Street View control.', WPGMP_TEXT_DOMAIN ),
|
30 |
+
'data' => array( 'target' => '#geo_tags_table,#geo_tags_message' ),
|
31 |
+
'class' => 'street_view_setting',
|
32 |
+
'show' => 'false',
|
33 |
+
));
|
34 |
+
|
35 |
+
$form->add_element( 'checkbox', 'map_street_view_setting[links_control]', array(
|
36 |
+
'lable' => __( 'Turn Off links Control.', WPGMP_TEXT_DOMAIN ),
|
37 |
+
'value' => 'false',
|
38 |
+
'id' => 'wpgmp_links_control',
|
39 |
+
'current' => $data['map_street_view_setting']['links_control'],
|
40 |
+
'desc' => __( 'Please check to disable links control.', WPGMP_TEXT_DOMAIN ),
|
41 |
+
'data' => array( 'target' => '#geo_tags_table,#geo_tags_message' ),
|
42 |
+
'class' => 'street_view_setting',
|
43 |
+
'show' => 'false',
|
44 |
+
));
|
45 |
+
|
46 |
+
$form->add_element( 'checkbox', 'map_street_view_setting[street_view_pan_control]', array(
|
47 |
+
'lable' => __( 'Turn Off links Control.', WPGMP_TEXT_DOMAIN ),
|
48 |
+
'value' => 'false',
|
49 |
+
'id' => 'wpgmp_street_view_pan_control',
|
50 |
+
'current' => $data['map_street_view_setting']['street_view_pan_control'],
|
51 |
+
'desc' => __( 'Please check to disable Street View Pan control.', WPGMP_TEXT_DOMAIN ),
|
52 |
+
'data' => array( 'target' => '#geo_tags_table,#geo_tags_message' ),
|
53 |
+
'class' => 'street_view_setting',
|
54 |
+
'show' => 'false',
|
55 |
+
));
|
56 |
+
|
57 |
+
$form->add_element( 'text', 'map_street_view_setting[pov_heading]', array(
|
58 |
+
'lable' => __( 'POV Heading', WPGMP_TEXT_DOMAIN ),
|
59 |
+
'value' => $data['map_street_view_setting']['pov_heading'],
|
60 |
+
'id' => 'pov_heading',
|
61 |
+
'desc' => __( 'Please enter POV heading.', WPGMP_TEXT_DOMAIN ),
|
62 |
+
'class' => 'form-control street_view_setting',
|
63 |
+
'show' => 'false',
|
64 |
+
));
|
65 |
+
|
66 |
+
$form->add_element( 'text', 'map_street_view_setting[pov_heading]', array(
|
67 |
+
'lable' => __( 'POV Heading', WPGMP_TEXT_DOMAIN ),
|
68 |
+
'value' => $data['map_street_view_setting']['pov_heading'],
|
69 |
+
'id' => 'pov_heading',
|
70 |
+
'desc' => __( 'Please enter POV heading.', WPGMP_TEXT_DOMAIN ),
|
71 |
+
'class' => 'form-control street_view_setting',
|
72 |
+
'show' => 'false',
|
73 |
+
));
|
74 |
+
|
75 |
+
|
76 |
+
$form->add_element( 'text', 'map_street_view_setting[pov_pitch]', array(
|
77 |
+
'lable' => __( 'POV Pitch', WPGMP_TEXT_DOMAIN ),
|
78 |
+
'value' => $data['map_street_view_setting']['pov_pitch'],
|
79 |
+
'id' => 'pov_heading',
|
80 |
+
'desc' => __( 'Please enter POV Pitch.', WPGMP_TEXT_DOMAIN ),
|
81 |
+
'class' => 'form-control street_view_setting',
|
82 |
+
'show' => 'false',
|
83 |
+
));
|
modules/overview/model.overview.php
ADDED
@@ -0,0 +1,28 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class: WPGMP_Model_Overview
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @version 3.0.0
|
6 |
+
* @package Maps
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! class_exists( 'WPGMP_Model_Overview' ) ) {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Overview model for Plugin Overview.
|
13 |
+
* @package Maps
|
14 |
+
* @author Flipper Code <hello@flippercode.com>
|
15 |
+
*/
|
16 |
+
class WPGMP_Model_Overview extends WPGMP_Model_Base {
|
17 |
+
/**
|
18 |
+
* Intialize Backup object.
|
19 |
+
*/
|
20 |
+
function __construct() {
|
21 |
+
}
|
22 |
+
/**
|
23 |
+
* Admin menu for Settings Operation
|
24 |
+
*/
|
25 |
+
function navigation() {
|
26 |
+
}
|
27 |
+
}
|
28 |
+
}
|
modules/overview/views/view.php
ADDED
@@ -0,0 +1,101 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Plugin Overviews.
|
4 |
+
* @package Maps
|
5 |
+
* @author Flipper Code <flippercode>
|
6 |
+
**/
|
7 |
+
|
8 |
+
?>
|
9 |
+
<div class="container">
|
10 |
+
<div class="row">
|
11 |
+
<div class="col-md-11">
|
12 |
+
<h4 class="alert alert-info"> <?php _e( 'How to Use',WPGMP_TEXT_DOMAIN ); ?> </h4>
|
13 |
+
<div class="wpgmp-overview">
|
14 |
+
<blockquote><?php _e( 'Go through the steps below to create your first map.' ); ?></blockquote>
|
15 |
+
<ol>
|
16 |
+
<li><?php
|
17 |
+
$url = admin_url( 'admin.php?page=wpgmp_form_location' );
|
18 |
+
$link = sprintf( wp_kses( __( 'Use our auto suggestion enabled location box to add your location <a href="%s">here</a>. You can add multiple locations.All those locations will be available to choose when you create your map.', 'my-text-domain' ), array( 'a' => array( 'href' => array() ) ) ), esc_url( $url ) );
|
19 |
+
echo $link;?>
|
20 |
+
</li>
|
21 |
+
<li><?php
|
22 |
+
$url = admin_url( 'admin.php?page=wpgmp_form_map' );
|
23 |
+
$link = sprintf( wp_kses( __( 'Now <a href="%s">click here</a> to create a map. You can create as many maps you want to add. Using shortcode, you can add maps on posts/pages.', WPGMP_TEXT_DOMAIN ), array( 'a' => array( 'href' => array() ) ) ), esc_url( $url ) );
|
24 |
+
echo $link;?>
|
25 |
+
</li>
|
26 |
+
<li><?php
|
27 |
+
$url = admin_url( 'admin.php?page=wpgmp_manage_map' );
|
28 |
+
$link = sprintf( wp_kses( __( 'When done with administrative tasks, you can display map on posts/pages using. You can create as many maps you want to add. Using shortcode, you can add maps on posts/pages. Enable map in the widgets section to display in sidebar.', WPGMP_TEXT_DOMAIN ), array( 'a' => array( 'href' => array() ) ) ), esc_url( $url ) );
|
29 |
+
echo $link;?>
|
30 |
+
</li>
|
31 |
+
</ol>
|
32 |
+
</div>
|
33 |
+
<div class="col-md-11">
|
34 |
+
<h4 class="alert alert-info"> <?php _e( 'Pro Version',WPGMP_TEXT_DOMAIN ); ?> </h4>
|
35 |
+
<div class="wpgmp-overview">
|
36 |
+
<blockquote><?php _e( 'Pro Edition Features',WPGMP_TEXT_DOMAIN ); ?> <a target="_blank" href="http://codecanyon.net/item/advanced-google-maps-plugin-for-wordpress/5211638">Download Pro Version.</a></blockquote>
|
37 |
+
<ol>
|
38 |
+
<li>Ability to display location title, location category, location latitude, location longitude with location message in the infowindow.</li>
|
39 |
+
<li>Ability to Sort listing by location, category and address alphabetically in location listing.</li>
|
40 |
+
<li>Ability to display default Start and End location in directions tab.</li>
|
41 |
+
<li>Ability to display directions results in KM and MILES.</li>
|
42 |
+
<li>Ability to google maps styles from https://snazzymaps.com.</li>
|
43 |
+
<li>Better user experience on time of Choose Locations for maps.</li>
|
44 |
+
<li>Ability to use External Database or Sources to add markers on google maps using new filter wpgmp_marker_source</li>
|
45 |
+
<li>Ability to display Featured Image or Custom fields in the infowindow for geo tags using new filter wpgmp_geotags_content</li>
|
46 |
+
<li>Display Posts/Pages or Custom Post Types on google maps.</li>
|
47 |
+
<li>Create unlimited maps and display on posts/pages using shortcode or in sidebar using widget.</li>
|
48 |
+
<li>Add unlimited locations using an easy to use interface for Google Maps.</li>
|
49 |
+
<li>Customize marker image for each location separately or group wise. Choose from +500 readymade markers or pick your own image.</li>
|
50 |
+
<li>Display your map perfectly on all devices. Create 100% responsive maps effortlessly.</li>
|
51 |
+
<li>Add any number of Google maps on pages/posts/sidebars.</li>
|
52 |
+
<li>Export/Import Features using CSV/JSON/XML or EXCEL.</li>
|
53 |
+
<li>Ajax based Location Listing.</li>
|
54 |
+
<li>Searchable Location Listing.</li>
|
55 |
+
<li>Paginated Location Listing.</li>
|
56 |
+
<li>Locating Listing Placeholder.</li>
|
57 |
+
<li>Directions & Route Suggestion</li>
|
58 |
+
<li>Nearby locations based on user’s current location.</li>
|
59 |
+
<li>Display multiple coloured routes on google maps.</li>
|
60 |
+
<li>Display traffic real time conditions and overlays using Traffic Layers.</li>
|
61 |
+
<li>Add bicycle path information to your maps using the Bicycling Layer.</li>
|
62 |
+
<li>Display physical maps based on terrain information.</li>
|
63 |
+
<li>Display photos from Panoramio as a layer to your maps using the Panoramio Layer.</li>
|
64 |
+
<li>A Cross Browser Compatible plugin. Fully tested on IE8, IE9, IE10 and all major browsers</li>
|
65 |
+
<li>Enable visual refresh on any Google Map at a button’s click.</li>
|
66 |
+
<li>No need of any Google API key. Based on API Version 3.</li>
|
67 |
+
<li>Fully Responsive. Tested on real devices.</li>
|
68 |
+
<li>Display one infowindow at a time.</li>
|
69 |
+
<li>Multi-lingual Supported.</li>
|
70 |
+
<li>Multisite Enabled and ability to activate it network wide.</li>
|
71 |
+
<li>Define overlays on Google maps via an easy to use interface</li>
|
72 |
+
<li>Design your own Google map skins easily. Turn ON/OFF roads, places, water area.</li>
|
73 |
+
<li>Enable marker clusters if you have too many locations. Just activate and the plugin will handle the rest. </li>
|
74 |
+
<li>Display polygons on Google Maps with options to customize</li>
|
75 |
+
<li>Display polylines on Google Maps with several customizable options</li>
|
76 |
+
<li>Modify existing polygons/polylines by making locations draggable</li>
|
77 |
+
<li>Define KML Layers on Google Maps</li>
|
78 |
+
<li>Apply 45 Imagery view on Google Maps</li>
|
79 |
+
<li>Fusion Table Layers</li>
|
80 |
+
<li>Awesome Shortcodes to add unlimited locations by address or latitude and longitude.</li>
|
81 |
+
<li>An innovative Quick Locations feature to add locations quickly by click.</li>
|
82 |
+
<li>Hooks Supported to modify maps,locations,listing on fly. Integrate api’s using hooks to the map.</li>
|
83 |
+
<li>Display Road Map view. This is the default map type.</li>
|
84 |
+
<li>Display Google Earth satellite images on just one click.</li>
|
85 |
+
<li>Display maps in a blend of normal and satellite views.</li>
|
86 |
+
<li>Display physical maps based on terrain information.</li>
|
87 |
+
<li>Display Google Maps on sidebars using widget.</li>
|
88 |
+
<li>Apply awesome google maps design from snazzymaps.com with just copy and paste.</li>
|
89 |
+
<li>Setup POV Heading and POV Pitch of Street View to customize Street View output of a location.</li>
|
90 |
+
<li>Integrate GEOJSON in to google maps.</li>
|
91 |
+
<li>Customize Infowindow Contents with help of Placeholders</li>
|
92 |
+
<li>Load markers from external database or API sources with help of filters (Hooks).</li>
|
93 |
+
<li>Ability to display infowindow on mouse click on mouse hover.</li>
|
94 |
+
</ol>
|
95 |
+
|
96 |
+
</div>
|
97 |
+
</div>
|
98 |
+
</div>
|
99 |
+
</div>
|
100 |
+
</div>
|
101 |
+
|
modules/settings/model.settings.php
ADDED
@@ -0,0 +1,58 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class: WPGMP_Model_Settings
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @version 3.0.0
|
6 |
+
* @package Maps
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! class_exists( 'WPGMP_Model_Settings' ) ) {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Setting model for Plugin Options.
|
13 |
+
* @package Maps
|
14 |
+
* @author Flipper Code <hello@flippercode.com>
|
15 |
+
*/
|
16 |
+
class WPGMP_Model_Settings extends WPGMP_Model_Base {
|
17 |
+
/**
|
18 |
+
* Intialize Backup object.
|
19 |
+
*/
|
20 |
+
function __construct() {
|
21 |
+
}
|
22 |
+
/**
|
23 |
+
* Admin menu for Settings Operation
|
24 |
+
* @return array Admin menu navigation(s).
|
25 |
+
*/
|
26 |
+
function navigation() {
|
27 |
+
return array(
|
28 |
+
'wpgmp_manage_settings' => __( 'Settings', WPGMP_TEXT_DOMAIN ),
|
29 |
+
);
|
30 |
+
}
|
31 |
+
/**
|
32 |
+
* Add or Edit Operation.
|
33 |
+
*/
|
34 |
+
function save() {
|
35 |
+
|
36 |
+
if ( isset( $_REQUEST['_wpnonce'] ) ) {
|
37 |
+
$nonce = sanitize_text_field( wp_unslash( $_REQUEST['_wpnonce'] ) ); }
|
38 |
+
|
39 |
+
if ( isset( $nonce ) and ! wp_verify_nonce( $nonce, 'wpgmp-nonce' ) ) {
|
40 |
+
|
41 |
+
die( 'Cheating...' );
|
42 |
+
|
43 |
+
}
|
44 |
+
|
45 |
+
$this->verify( $_POST );
|
46 |
+
|
47 |
+
if ( is_array( $this->errors ) and ! empty( $this->errors ) ) {
|
48 |
+
$this->throw_errors();
|
49 |
+
}
|
50 |
+
|
51 |
+
$result = update_option( 'wpgmp_api_key',sanitize_text_field( wp_unslash( $_POST['wpgmp_api_key'] ) ) );
|
52 |
+
$result = update_option( 'wpgmp_language',sanitize_text_field( wp_unslash( $_POST['wpgmp_language'] ) ) );
|
53 |
+
$response['success'] = __( 'Setting(s) saved successfully.',WPGMP_TEXT_DOMAIN );
|
54 |
+
return $response;
|
55 |
+
|
56 |
+
}
|
57 |
+
}
|
58 |
+
}
|
modules/settings/views/manage.php
ADDED
@@ -0,0 +1,90 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* This class used to manage settings page in backend.
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @version 1.0.0
|
6 |
+
* @package Maps
|
7 |
+
*/
|
8 |
+
|
9 |
+
$form = new Responsive_Markup();
|
10 |
+
$form->set_header( __( 'General Setting(s)', WPGMP_TEXT_DOMAIN ), $response );
|
11 |
+
$form->add_element('text','wpgmp_api_key',array(
|
12 |
+
'lable' => __( 'Business API Key',WPGMP_TEXT_DOMAIN ),
|
13 |
+
'value' => get_option( 'wpgmp_api_key' ),
|
14 |
+
'desc' => __( 'Insert Api Key if you signup for google maps business api.', WPGMP_TEXT_DOMAIN ),
|
15 |
+
));
|
16 |
+
$language = array(
|
17 |
+
'en' => __( 'ENGLISH', WPGMP_TEXT_DOMAIN ),
|
18 |
+
'ar' => __( 'ARABIC', WPGMP_TEXT_DOMAIN ),
|
19 |
+
'eu' => __( 'BASQUE', WPGMP_TEXT_DOMAIN ),
|
20 |
+
'bg' => __( 'BULGARIAN', WPGMP_TEXT_DOMAIN ),
|
21 |
+
'bn' => __( 'BENGALI', WPGMP_TEXT_DOMAIN ),
|
22 |
+
'ca' => __( 'CATALAN', WPGMP_TEXT_DOMAIN ),
|
23 |
+
'cs' => __( 'CZECH', WPGMP_TEXT_DOMAIN ),
|
24 |
+
'da' => __( 'DANISH', WPGMP_TEXT_DOMAIN ),
|
25 |
+
'de' => __( 'GERMAN', WPGMP_TEXT_DOMAIN ),
|
26 |
+
'el' => __( 'GREEK', WPGMP_TEXT_DOMAIN ),
|
27 |
+
'en-AU' => __( 'ENGLISH (AUSTRALIAN)', WPGMP_TEXT_DOMAIN ),
|
28 |
+
'en-GB' => __( 'ENGLISH (GREAT BRITAIN)', WPGMP_TEXT_DOMAIN ),
|
29 |
+
'es' => __( 'SPANISH', WPGMP_TEXT_DOMAIN ),
|
30 |
+
'fa' => __( 'FARSI', WPGMP_TEXT_DOMAIN ),
|
31 |
+
'fi' => __( 'FINNISH', WPGMP_TEXT_DOMAIN ),
|
32 |
+
'fil' => __( 'FILIPINO', WPGMP_TEXT_DOMAIN ),
|
33 |
+
'fr' => __( 'FRENCH', WPGMP_TEXT_DOMAIN ),
|
34 |
+
'gl' => __( 'GALICIAN', WPGMP_TEXT_DOMAIN ),
|
35 |
+
'gu' => __( 'GUJARATI', WPGMP_TEXT_DOMAIN ),
|
36 |
+
'hi' => __( 'HINDI', WPGMP_TEXT_DOMAIN ),
|
37 |
+
'hr' => __( 'CROATIAN', WPGMP_TEXT_DOMAIN ),
|
38 |
+
'hu' => __( 'HUNGARIAN', WPGMP_TEXT_DOMAIN ),
|
39 |
+
'id' => __( 'INDONESIAN', WPGMP_TEXT_DOMAIN ),
|
40 |
+
'it' => __( 'ITALIAN', WPGMP_TEXT_DOMAIN ),
|
41 |
+
'iw' => __( 'HEBREW', WPGMP_TEXT_DOMAIN ),
|
42 |
+
'ja' => __( 'JAPANESE', WPGMP_TEXT_DOMAIN ),
|
43 |
+
'kn' => __( 'KANNADA', WPGMP_TEXT_DOMAIN ),
|
44 |
+
'ko' => __( 'KOREAN', WPGMP_TEXT_DOMAIN ),
|
45 |
+
'lt' => __( 'LITHUANIAN', WPGMP_TEXT_DOMAIN ),
|
46 |
+
'lv' => __( 'LATVIAN', WPGMP_TEXT_DOMAIN ),
|
47 |
+
'ml' => __( 'MALAYALAM', WPGMP_TEXT_DOMAIN ),
|
48 |
+
'it' => __( 'ITALIAN', WPGMP_TEXT_DOMAIN ),
|
49 |
+
'mr' => __( 'MARATHI', WPGMP_TEXT_DOMAIN ),
|
50 |
+
'nl' => __( 'DUTCH', WPGMP_TEXT_DOMAIN ),
|
51 |
+
'no' => __( 'NORWEGIAN', WPGMP_TEXT_DOMAIN ),
|
52 |
+
'pl' => __( 'POLISH', WPGMP_TEXT_DOMAIN ),
|
53 |
+
'pt' => __( 'PORTUGUESE', WPGMP_TEXT_DOMAIN ),
|
54 |
+
'pt-BR' => __( 'PORTUGUESE (BRAZIL)', WPGMP_TEXT_DOMAIN ),
|
55 |
+
'pt-PT' => __( 'PORTUGUESE (PORTUGAL)', WPGMP_TEXT_DOMAIN ),
|
56 |
+
'ro' => __( 'ROMANIAN', WPGMP_TEXT_DOMAIN ),
|
57 |
+
'ru' => __( 'RUSSIAN', WPGMP_TEXT_DOMAIN ),
|
58 |
+
'sk' => __( 'SLOVAK', WPGMP_TEXT_DOMAIN ),
|
59 |
+
'sl' => __( 'SLOVENIAN', WPGMP_TEXT_DOMAIN ),
|
60 |
+
'sr' => __( 'SERBIAN', WPGMP_TEXT_DOMAIN ),
|
61 |
+
'sv' => __( 'SWEDISH', WPGMP_TEXT_DOMAIN ),
|
62 |
+
'tl' => __( 'TAGALOG', WPGMP_TEXT_DOMAIN ),
|
63 |
+
'ta' => __( 'TAMIL', WPGMP_TEXT_DOMAIN ),
|
64 |
+
'te' => __( 'TELUGU', WPGMP_TEXT_DOMAIN ),
|
65 |
+
'th' => __( 'THAI', WPGMP_TEXT_DOMAIN ),
|
66 |
+
'tr' => __( 'TURKISH', WPGMP_TEXT_DOMAIN ),
|
67 |
+
'uk' => __( 'UKRAINIAN', WPGMP_TEXT_DOMAIN ),
|
68 |
+
'vi' => __( 'VIETNAMESE', WPGMP_TEXT_DOMAIN ),
|
69 |
+
'zh-CN' => __( 'CHINESE (SIMPLIFIED)', WPGMP_TEXT_DOMAIN ),
|
70 |
+
'zh-TW' => __( 'CHINESE (TRADITIONAL)', WPGMP_TEXT_DOMAIN ),
|
71 |
+
);
|
72 |
+
|
73 |
+
|
74 |
+
$form->add_element( 'select', 'wpgmp_language', array(
|
75 |
+
'lable' => __( 'Select Language', WPGMP_TEXT_DOMAIN ),
|
76 |
+
'current' => get_option( 'wpgmp_language' ),
|
77 |
+
'desc' => __( 'Default is English.', WPGMP_TEXT_DOMAIN ),
|
78 |
+
'options' => $language,
|
79 |
+
));
|
80 |
+
|
81 |
+
$form->add_element('submit','wpgmp_save_settings',array(
|
82 |
+
'value' => __( 'Save Setting',WPGMP_TEXT_DOMAIN ),
|
83 |
+
));
|
84 |
+
$form->add_element('hidden','operation',array(
|
85 |
+
'value' => 'save',
|
86 |
+
));
|
87 |
+
$form->add_element('hidden','page_options',array(
|
88 |
+
'value' => 'wpgmp_api_key,wpgmp_language',
|
89 |
+
));
|
90 |
+
$form->render();
|
modules/shortcode/model.shortcode.php
ADDED
@@ -0,0 +1,30 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Class: WPGMP_Model_Shortcode
|
4 |
+
* @author Flipper Code <hello@flippercode.com>
|
5 |
+
* @version 3.0.0
|
6 |
+
* @package Maps
|
7 |
+
*/
|
8 |
+
|
9 |
+
if ( ! class_exists( 'WPGMP_Model_Shortcode' ) ) {
|
10 |
+
|
11 |
+
/**
|
12 |
+
* Shortcode model to display output on frontend.
|
13 |
+
* @package Maps
|
14 |
+
* @author Flipper Code <hello@flippercode.com>
|
15 |
+
*/
|
16 |
+
class WPGMP_Model_Shortcode extends WPGMP_Model_Base {
|
17 |
+
/**
|
18 |
+
* Intialize Shortcode object.
|
19 |
+
*/
|
20 |
+
function __construct() {
|
21 |
+
}
|
22 |
+
/**
|
23 |
+
* Admin menu for Settings Operation
|
24 |
+
* @return array Admin menu navigation(s).
|
25 |
+
*/
|
26 |
+
function navigation() {
|
27 |
+
return array();
|
28 |
+
}
|
29 |
+
}
|
30 |
+
}
|
modules/shortcode/views/put-wpgmp.php
ADDED
@@ -0,0 +1,210 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Parse Shortcode and display maps.
|
4 |
+
* @package Maps
|
5 |
+
* @author Flipper Code <hello@flippercode.com>
|
6 |
+
*/
|
7 |
+
|
8 |
+
if ( isset( $options['id'] ) ) {
|
9 |
+
$map_id = $options['id'];
|
10 |
+
} else { return ''; }
|
11 |
+
|
12 |
+
// Fetch map information.
|
13 |
+
$modelFactory = new FactoryModelWPGMP();
|
14 |
+
$map_obj = $modelFactory->create_object( 'map' );
|
15 |
+
$map_record = $map_obj->fetch( array( array( 'map_id', '=', $map_id ) ) );
|
16 |
+
$map = $map_record[0];
|
17 |
+
$category_obj = $modelFactory->create_object( 'group_map' );
|
18 |
+
$categories = $category_obj->fetch();
|
19 |
+
$all_categories = array();
|
20 |
+
$all_categories_name = array();
|
21 |
+
|
22 |
+
if ( ! empty( $categories ) ) {
|
23 |
+
foreach ( $categories as $category ) {
|
24 |
+
$all_categories[ $category->group_map_id ] = $category;
|
25 |
+
$all_categories_name[ $category->group_map_title ] = $category;
|
26 |
+
}
|
27 |
+
}
|
28 |
+
if ( ! empty( $map->map_locations ) ) {
|
29 |
+
$location_obj = $modelFactory->create_object( 'location' );
|
30 |
+
$map_locations = $location_obj->fetch( array( array( 'location_id', 'IN', implode( ',',$map->map_locations ) ) ) );
|
31 |
+
}
|
32 |
+
|
33 |
+
$map_data = array();
|
34 |
+
// Set map options.
|
35 |
+
$map_data['places'] = array();
|
36 |
+
$map_data['map_options'] = array(
|
37 |
+
'center_lat' => sanitize_text_field( $map->map_all_control['map_center_latitude'] ),
|
38 |
+
'center_lng' => sanitize_text_field( $map->map_all_control['map_center_longitude'] ),
|
39 |
+
'zoom' => intval( $map->map_zoom_level ),
|
40 |
+
'map_type_id' => sanitize_text_field( $map->map_type ),
|
41 |
+
'draggable' => (sanitize_text_field( $map->map_all_control['map_draggable'] ) != 'false'),
|
42 |
+
'scroll_wheel' => sanitize_text_field( $map->map_scrolling_wheel ),
|
43 |
+
'display_45_imagery' => sanitize_text_field( $map->map_45imagery ),
|
44 |
+
'marker_default_icon' => esc_url( $map->map_all_control['marker_default_icon'] ),
|
45 |
+
'infowindow_setting' => wp_unslash( $map->map_all_control['infowindow_setting'] ),
|
46 |
+
'default_infowindow_open' => false,
|
47 |
+
'infowindow_open_event' => 'click',
|
48 |
+
'pan_control' => ($map->map_all_control['pan_control'] != 'false'),
|
49 |
+
'zoom_control' => ($map->map_all_control['zoom_control'] != 'false'),
|
50 |
+
'map_type_control' => ($map->map_all_control['map_type_control'] != 'false'),
|
51 |
+
'scale_control' => ( $map->map_all_control['scale_control'] != 'false'),
|
52 |
+
'street_view_control' => ($map->map_all_control['street_view_control'] != 'false'),
|
53 |
+
'overview_map_control' => ($map->map_all_control['overview_map_control'] != 'false'),
|
54 |
+
'pan_control_position' => $map->map_all_control['pan_control_position'],
|
55 |
+
'zoom_control_position' => $map->map_all_control['zoom_control_position'],
|
56 |
+
'zoom_control_style' => $map->map_all_control['zoom_control_style'],
|
57 |
+
'map_type_control_position' => $map->map_all_control['map_type_control_position'],
|
58 |
+
'map_type_control_style' => $map->map_all_control['map_type_control_style'],
|
59 |
+
'street_view_control_position' => $map->map_all_control['street_view_control_position'],
|
60 |
+
);
|
61 |
+
|
62 |
+
$map_data['map_options']['width'] = sanitize_text_field( $map->map_width );
|
63 |
+
|
64 |
+
$map_data['map_options']['height'] = sanitize_text_field( $map->map_height );
|
65 |
+
|
66 |
+
$map_data['map_options'] = apply_filters( 'wpgmp_map_options',$map_data['map_options'] );
|
67 |
+
|
68 |
+
if ( isset( $map_data['map_options']['width'] ) ) {
|
69 |
+
$width = $map_data['map_options']['width'];
|
70 |
+
} else { $width = '100%'; }
|
71 |
+
|
72 |
+
if ( isset( $map_data['map_options']['height'] ) ) {
|
73 |
+
$height = $map_data['map_options']['height'];
|
74 |
+
} else { $height = '300px'; }
|
75 |
+
|
76 |
+
if ( strstr( $width, '%' ) === false ) {
|
77 |
+
$width = str_replace( 'px', '', $width ).'px';
|
78 |
+
}
|
79 |
+
|
80 |
+
if ( strstr( $height, '%' ) === false ) {
|
81 |
+
$height = str_replace( 'px', '', $height ).'px';
|
82 |
+
}
|
83 |
+
|
84 |
+
$wpgmp_local = array();
|
85 |
+
if ( get_option( 'wpgmp_language' ) ) {
|
86 |
+
$wpgmp_local['language'] = get_option( 'wpgmp_language' );
|
87 |
+
} else { $wpgmp_local['language'] = 'en'; }
|
88 |
+
|
89 |
+
$wpgmp_local['wpgmp_not_working'] = __( 'not working...', WPGMP_TEXT_DOMAIN );
|
90 |
+
$wpgmp_local['place_icon_url'] = WPGMP_ICONS;
|
91 |
+
$wpgmp_local['wpgmp_location_no_results'] = __( 'No results found.', WPGMP_TEXT_DOMAIN );
|
92 |
+
$wpgmp_local['wpgmp_route_not_avilable'] = __( 'Route is not available for your requested route.', WPGMP_TEXT_DOMAIN );
|
93 |
+
wp_localize_script( 'wpgmp-google-map-main', 'wpgmp_local',$wpgmp_local );
|
94 |
+
|
95 |
+
if ( is_array( $map_locations ) ) {
|
96 |
+
$loc_count = 0;
|
97 |
+
foreach ( $map_locations as $location ) {
|
98 |
+
$location_categories = array();
|
99 |
+
if ( empty( $location->location_group_map ) ) {
|
100 |
+
$map_data['places'][ $loc_count ]['categories'][] = array(
|
101 |
+
'id' => '',
|
102 |
+
'name' => '',
|
103 |
+
'type' => 'category',
|
104 |
+
'icon' => '',
|
105 |
+
);
|
106 |
+
} else {
|
107 |
+
|
108 |
+
foreach ( $location->location_group_map as $key => $loc_category_id ) {
|
109 |
+
$loc_category = $all_categories[ $loc_category_id ];
|
110 |
+
$location_categories[] = array(
|
111 |
+
'id' => $loc_category->group_map_id,
|
112 |
+
'name' => $loc_category->group_map_title,
|
113 |
+
'type' => 'category',
|
114 |
+
'icon' => $loc_category->group_marker,
|
115 |
+
);
|
116 |
+
}
|
117 |
+
}
|
118 |
+
$onclick = isset( $location->location_settings['onclick'] ) ? $location->location_settings['onclick'] : 'marker';
|
119 |
+
$map_data['places'][ $loc_count ] = array(
|
120 |
+
'id' => $location->location_id,
|
121 |
+
'title' => $location->location_title,
|
122 |
+
'address' => $location->location_address,
|
123 |
+
'content' => ('' != $location->location_messages) ? stripcslashes( $location->location_messages ) : $location->location_title,
|
124 |
+
'location' => array(
|
125 |
+
'icon' => $location_categories[0]['icon'],
|
126 |
+
'lat' => $location->location_latitude,
|
127 |
+
'lng' => $location->location_longitude,
|
128 |
+
'city' => $location->location_city,
|
129 |
+
'state' => $location->location_state,
|
130 |
+
'country' => $location->location_country,
|
131 |
+
'redirect_url' => $onclick,
|
132 |
+
'redirect_custom_link' => $location->location_settings['redirect_link'],
|
133 |
+
'open_new_tab' => $location->location_settings['redirect_link_window'],
|
134 |
+
'postal_code' => $location->location_postal_code,
|
135 |
+
'draggable' => ( 'true' == $location->location_draggable ),
|
136 |
+
'infowindow_default_open' => $location->location_infowindow_default_open,
|
137 |
+
'animation' => $location->location_animation,
|
138 |
+
'infowindow_disable' => false,
|
139 |
+
'zoom' => 5,
|
140 |
+
),
|
141 |
+
'categories' => $location_categories,
|
142 |
+
);
|
143 |
+
|
144 |
+
$loc_count++;
|
145 |
+
}
|
146 |
+
}
|
147 |
+
|
148 |
+
if ( ! empty( $map->map_layer_setting['choose_layer']['bicycling_layer'] ) && $map->map_layer_setting['choose_layer']['bicycling_layer'] == 'BicyclingLayer' ) {
|
149 |
+
$map_data['bicyle_layer'] = array(
|
150 |
+
'display_layer' => true,
|
151 |
+
);
|
152 |
+
}
|
153 |
+
|
154 |
+
if ( ! empty( $map->map_layer_setting['choose_layer']['traffic_layer'] ) && $map->map_layer_setting['choose_layer']['traffic_layer'] == 'TrafficLayer' ) {
|
155 |
+
$map_data['traffic_layer'] = array(
|
156 |
+
'display_layer' => true,
|
157 |
+
);
|
158 |
+
}
|
159 |
+
|
160 |
+
if ( ! empty( $map->map_layer_setting['choose_layer']['transit_layer'] ) && $map->map_layer_setting['choose_layer']['transit_layer'] == 'TransitLayer' ) {
|
161 |
+
$map_data['transit_layer'] = array(
|
162 |
+
'display_layer' => true,
|
163 |
+
);
|
164 |
+
}
|
165 |
+
|
166 |
+
if ( '' == $map_data['map_options']['center_lat'] ) {
|
167 |
+
$map_data['map_options']['center_lat'] = $map_data['places'][0]['location']['lat'];
|
168 |
+
}
|
169 |
+
|
170 |
+
if ( '' == $map_data['map_options']['center_lng'] ) {
|
171 |
+
$map_data['map_options']['center_lng'] = $map_data['places'][0]['location']['lng'];
|
172 |
+
}
|
173 |
+
|
174 |
+
|
175 |
+
// Street view.
|
176 |
+
if ( $map->map_street_view_setting['street_control'] == 'true' ) {
|
177 |
+
$map_data['street_view'] = array(
|
178 |
+
'street_control' => @$map->map_street_view_setting['street_control'],
|
179 |
+
'street_view_close_button' => (@$map->map_street_view_setting['street_view_close_button'] === 'true'?true:false),
|
180 |
+
'links_control' => (@$map->map_street_view_setting['links_control'] === 'true'?true:false),
|
181 |
+
'street_view_pan_control' => (@$map->map_street_view_setting['street_view_pan_control'] === 'true'?true:false),
|
182 |
+
'pov_heading' => $map->map_street_view_setting['pov_heading'],
|
183 |
+
'pov_pitch' => $map->map_street_view_setting['pov_pitch'],
|
184 |
+
);
|
185 |
+
}
|
186 |
+
|
187 |
+
|
188 |
+
$map_data['map_property'] = array( 'map_id' => $map->map_id );
|
189 |
+
|
190 |
+
$map_output = '';
|
191 |
+
|
192 |
+
$map_output .= '<div class="wpgmp_map_container" rel="map'.$map->map_id.'">';
|
193 |
+
|
194 |
+
$map_output .= '<div class="wpgmp_map" style="width:'.$width.'; height:'.$height.';" id="map'.$map->map_id.'" ></div>';
|
195 |
+
if ( ! empty( $map->map_all_control['display_listing'] ) && $map->map_all_control['display_listing'] == true ) {
|
196 |
+
|
197 |
+
$map_output .= '<div class="location_listing'.$map->map_id.'" style="float:left; width:100%;"></div>
|
198 |
+
<div class="location_pagination'.$map->map_id.' wpgmp_pagination" style="float:left; width:100%;"></div>';
|
199 |
+
}
|
200 |
+
$map_output .= '</div>';
|
201 |
+
$map_data_obj = json_encode( $map_data );
|
202 |
+
|
203 |
+
$map_output .= '<script>
|
204 |
+
jQuery(document).ready(function($) {
|
205 |
+
|
206 |
+
var map = $("#map'.$map_id.'").maps('.$map_data_obj.').data("wpgmp_maps");
|
207 |
+
|
208 |
+
});
|
209 |
+
</script>';
|
210 |
+
return $map_output;
|
readme.txt
ADDED
@@ -0,0 +1,253 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
=== Plugin Name ===
|
2 |
+
|
3 |
+
Contributors: flippercode
|
4 |
+
Plugin Name: WP Google Map Plugin
|
5 |
+
Tags: map, maps,google map, google maps, wp map, wp maps, wordpress google map, wordpress google maps.
|
6 |
+
Author URI: http://profiles.wordpress.org/flippercode/
|
7 |
+
Author: flippercode
|
8 |
+
Donate link: (a link for donating)
|
9 |
+
Requires at least: 2.0.0
|
10 |
+
Tested up to: 4.4
|
11 |
+
Stable tag: Display Google Maps in Pages, Posts, Sidebar or Custom Templates. It’s Responsive, Multi-Lingual and Multi-Site Supported.
|
12 |
+
|
13 |
+
== Description ==
|
14 |
+
A Google Maps plugin for WordPress to create unlimited locations, maps and display Google Maps at a shortcode’s ease. Perfectly responsive maps, Multi-lingual and multisite supported made it most advanced WordPress plugin ever.
|
15 |
+
|
16 |
+
Here is a quick highlight on the numerous customizable features offered by the free and pro versions of the WP Google Map plugin.
|
17 |
+
|
18 |
+
Here is a quick highlight on the numerous customizable features offered by the free and pro versions of the [WP Google Map Pro Version](http://codecanyon.net/item/advanced-google-maps/5211638).
|
19 |
+
|
20 |
+
= Lite Version (Free) =
|
21 |
+
* Ability to show any number of google maps on a single map.
|
22 |
+
* Decide center latitude and longitude for each map separtely.
|
23 |
+
* POV Heading and Pov Pitch for street view.
|
24 |
+
* Sub categories supported.
|
25 |
+
* Redirect to URL on marker click or display info window message.
|
26 |
+
* Position google maps controls e.g Pan,Zoom,May Type with easy to use interface.
|
27 |
+
* Create unlimited maps and display on posts/pages using shortcode.
|
28 |
+
* Add unlimited locations using an easy to use interface for Google Maps
|
29 |
+
* Display your map perfectly on all devices. Create 100% responsive maps effortlessly
|
30 |
+
* Display Google Maps on sidebars using widget
|
31 |
+
* Display Road Map view. This is the default map type
|
32 |
+
* Display Google Earth satellite images on just one click
|
33 |
+
* Display maps in a blend of normal and satellite views
|
34 |
+
* Display physical maps based on terrain information
|
35 |
+
* Display traffic real time conditions and overlays using Traffic Layers
|
36 |
+
* Add bicycle path information to your maps using the Bicycling Layer
|
37 |
+
* Display physical maps based on terrain information
|
38 |
+
* A Cross Browser Compatible plugin. Fully tested on IE8, IE9, IE10 and all major browsers
|
39 |
+
* Enable visual refresh on any Google Map at a button’s click
|
40 |
+
* No need of any Google API key. Based on API Version 3.
|
41 |
+
* Fully Responsive. Tested on real devices.
|
42 |
+
* Display one infowindow at a time.
|
43 |
+
* Multi-lingual Supported.
|
44 |
+
* Multisite Enabled and ability to activate it network wide.
|
45 |
+
|
46 |
+
|
47 |
+
= Pro Edition =
|
48 |
+
* Ability to display location title, location category, location latitude, location longitude with location message in the infowindow.
|
49 |
+
* Ability to Sort listing by location, category and address alphabetically in location listing.
|
50 |
+
* Ability to display default Start and End location in directions tab.
|
51 |
+
* Ability to display directions results in KM and MILES.
|
52 |
+
* Ability to google maps styles from https://snazzymaps.com.
|
53 |
+
* Better user experience on time of Choose Locations for maps.
|
54 |
+
* Ability to use External Database or Sources to add markers on google maps using new filter wpgmp_marker_source.
|
55 |
+
* Ability to display Featured Image or Custom fields in the infowindow for geo tags using new filter wpgmp_geotags_content.
|
56 |
+
* Display Posts/Pages or Custom Post Types on google maps.
|
57 |
+
* Create unlimited maps and display on posts/pages using shortcode or in sidebar using widget.
|
58 |
+
* Add unlimited locations using an easy to use interface for Google Maps.
|
59 |
+
* Display your map perfectly on all devices. Create 100% responsive maps effortlessly.
|
60 |
+
* Add any number of Google maps on pages/posts/sidebars.
|
61 |
+
* Export/Import Features using CSV/JSON/XML or EXCEL.
|
62 |
+
* Ajax based Location Listing.
|
63 |
+
* Searchable Location Listing.
|
64 |
+
* Paginated Location Listing.
|
65 |
+
* Locating Listing Placeholder.
|
66 |
+
* Directions & Route Suggestion.
|
67 |
+
* Nearby locations based on user’s current location.
|
68 |
+
* Display multiple coloured routes on google maps.
|
69 |
+
* Display traffic real time conditions and overlays using Traffic Layers.
|
70 |
+
* Add bicycle path information to your maps using the Bicycling Layer.
|
71 |
+
* Display physical maps based on terrain information.
|
72 |
+
* A Cross Browser Compatible plugin. Fully tested on IE8, IE9, IE10 and all major browsers
|
73 |
+
* Enable visual refresh on any Google Map at a button’s click.
|
74 |
+
* No need of any Google API key. Based on API Version 3.
|
75 |
+
* Fully Responsive. Tested on real devices.
|
76 |
+
* Display one infowindow at a time.
|
77 |
+
* Multi-lingual Supported.
|
78 |
+
* Multisite Enabled and ability to activate it network wide.
|
79 |
+
* Define overlays on Google maps via an easy to use interface.
|
80 |
+
* Design your own Google map skins easily. Turn ON/OFF roads, places, water area.
|
81 |
+
* Enable marker clusters if you have too many locations. Just activate and the plugin will handle the rest.
|
82 |
+
* Display polygons on Google Maps with options to customize.
|
83 |
+
* Display polylines on Google Maps with several customizable options.
|
84 |
+
* Modify existing polygons/polylines by making locations draggable.
|
85 |
+
* Define KML Layers on Google Maps.
|
86 |
+
* Apply 45 Imagery view on Google Maps.
|
87 |
+
* Fusion Table Layers.
|
88 |
+
* Awesome Shortcodes to add unlimited locations by address or latitude and longitude.
|
89 |
+
* An innovative Quick Locations feature to add locations quickly by click.
|
90 |
+
* Hooks Supported to modify maps,locations,listing on fly. Integrate api’s using hooks to the map.
|
91 |
+
* Display Road Map view. This is the default map type.
|
92 |
+
* Display Google Earth satellite images on just one click.
|
93 |
+
* Display maps in a blend of normal and satellite views.
|
94 |
+
* Display physical maps based on terrain information.
|
95 |
+
* Display Google Maps on sidebars using widget.
|
96 |
+
* Apply awesome google maps design from snazzymaps.com with just copy and paste.
|
97 |
+
* Setup POV Heading and POV Pitch of Street View to customize Street View output of a location.
|
98 |
+
* Integrate GEOJSON in to google maps.
|
99 |
+
* Customize Infowindow Contents with help of Placeholders.
|
100 |
+
* Load markers from external database or API sources with help of filters (Hooks).
|
101 |
+
* Ability to display infowindow on mouse click on mouse hover.
|
102 |
+
* Define overlays on Google maps via an easy to use interface.
|
103 |
+
* Design your own Google map skins easily. Turn ON/OFF roads, places, water area.
|
104 |
+
* Enable marker clusters if you have too many locations. Just activate and the plugin will handle the rest.
|
105 |
+
* Display polygons on Google map with options to customize.
|
106 |
+
* Display polylines on Google map with several customizable options.
|
107 |
+
* Modify existing polygons/polylines by making locations draggable .
|
108 |
+
* Define KML Layers on Google Maps.
|
109 |
+
* Apply 45 Imagery view on Google Maps.
|
110 |
+
* Fusion Table Layers.
|
111 |
+
* Awesome Shortcodes to add unlimited locations by address or latitude/longitues.
|
112 |
+
* Contact Form 7 Shortcode to include map in contact form 7.
|
113 |
+
* An innovative Quick Locations feature to add locations quickly by click.
|
114 |
+
* Export/Import Features using CSV/JSON/XML or EXCEL.
|
115 |
+
* Display Ajax based Locations below Maps.
|
116 |
+
* Ajax based searching for locations.
|
117 |
+
* Filter by user's current location.
|
118 |
+
* Directions & Route Suggestions.
|
119 |
+
* Each location listing is paginated.
|
120 |
+
* GEOTags Supported - Easiest way to display posts/pages or custom post types on map.
|
121 |
+
* Hooks Supported - Use actions & filters to modify map,markers,listing and associated html on fly.
|
122 |
+
* Download [WP Google Map Pro Edition](http://codecanyon.net/item/advanced-google-maps/5211638)
|
123 |
+
|
124 |
+
|
125 |
+
|
126 |
+
= DEMO =
|
127 |
+
|
128 |
+
* [Display Post,Pages or Custom Post types on Google Maps](http://www.flippercode.com/display-multiple-markers-using-addresses-on-google-maps)
|
129 |
+
* [Display Multiple Markers using Address using Shortcodes](http://www.flippercode.com/display-multiple-markers-using-addresses-on-google-maps)
|
130 |
+
* [Filter Locations by Categories](http://www.flippercode.com/filtration-using-categories-on-google-maps)
|
131 |
+
* [Styled Google Map Skins](http://www.flippercode.com/styled-google-map-skin)
|
132 |
+
* [Google Map Street View](http://www.flippercode.com/google-map-street-view-using-wordpress-plugin)
|
133 |
+
* [100% Responsive Google Map](http://bit.ly/MMxK13)
|
134 |
+
* [Google Map Weather Layer](http://www.flippercode.com/google-map-weather-layer-using-wordpress-plugin)
|
135 |
+
* [Google Map Traffic Layer](http://www.flippercode.com/google-map-traffic-layer-using-wordpress-plugin)
|
136 |
+
* [Google Map Bicycling Layer](http://www.flippercode.com/google-map-bicycling%20-layer-using-wordpress-plugin)
|
137 |
+
* [Google Map Panoramic Layer](http://www.flippercode.com/google-map-panoramic-layer-using-wordpress-plugin)
|
138 |
+
* [Google Map Overlays using WordPress Plugin](http://www.flippercode.com/google-map-overlays-using-wordpress-plugin)
|
139 |
+
* [Google Map Satellite with Overlays](http://www.flippercode.com/google-map-satellite-with-overlays-using-wordpress-plugin)
|
140 |
+
* [Google Map 45 degree Imagery](http://www.flippercode.com/google-map-45-degree-imagery-using-wordpress-plugin)
|
141 |
+
* [Turn Off Scrolling Wheel on Google Map](http://www.flippercode.com/turn-off-scrolling-wheel-on-google-map-using-wordpress-plugin)
|
142 |
+
* [Enable Visual Refresh on Google Map using WordPress Plugin](http://www.flippercode.com/enable-visual-refresh-on-google-map-using-wordpress-plugin)
|
143 |
+
* [Google Map Marker Cluster](http://www.flippercode.com/google-map-marker-cluster-using-wordpress-plugin)
|
144 |
+
* [Google Map KML Layers using WordPress Plugin](http://www.flippercode.com/implement-kml-layers-on-google-map-using-wordpress-plugin)
|
145 |
+
* [Display Polylines on Google Map](http://www.flippercode.com/display-polylines-on-google-map-using-wordpress-plugin)
|
146 |
+
* [Display Route Direction on Google Map](http://www.flippercode.com/display-route-direction-on-google-map-using-wordpress-plugin)
|
147 |
+
* [Hooks for Google Maps Plugin] (http://www.flippercode.com/hooks-for-google-maps-plugin/)
|
148 |
+
|
149 |
+
**Introducing Support Desk**
|
150 |
+
|
151 |
+
We're at [FlipperCode](http://www.flippercode.com/), committed to excellent support to make every download worth for the user. Happily announcing [Support Desk](http://www.flippercode.com/forums/) for our valuable users to engaged with multiple support desk person for fast turnout.
|
152 |
+
|
153 |
+
|
154 |
+
== Installation ==
|
155 |
+
This section describes how to install the plugin and get it working.
|
156 |
+
|
157 |
+
1. Upload the wp-google-map-plugin directory to the /wp-content/plugins/ directory
|
158 |
+
|
159 |
+
2. Activate the plugin through the 'Plugins' menu in WordPress
|
160 |
+
|
161 |
+
|
162 |
+
== Upgrade Notice ==
|
163 |
+
|
164 |
+
== Screenshots ==
|
165 |
+
1. An easy interface to add Locations. You can add unlimited locations.
|
166 |
+
2. Take control on Google Map Default options with just on click.
|
167 |
+
3. Easy to define General Settings of Google Maps
|
168 |
+
4. Easy interface to modify info windows.
|
169 |
+
5. Display all your locations in Core WordPress format. Easy to manage locations just like you do for posts/pages.
|
170 |
+
6. Display all your maps in Core WordPress format. Easy to manage maps just like you do for posts/pages.
|
171 |
+
7. Disable Scrolling Wheel, Enable Visual Refresh Property and many more...
|
172 |
+
8. Enable Streetview and it's Settings.
|
173 |
+
|
174 |
+
|
175 |
+
|
176 |
+
== Changelog ==
|
177 |
+
|
178 |
+
Version 3.0.5
|
179 |
+
* Lang slug changed to wp-google-map-plugin as per wordpress.org requested.
|
180 |
+
|
181 |
+
Version 3.0.4
|
182 |
+
* links in the info window is broken due to missing stripslashes function - resolved.
|
183 |
+
|
184 |
+
Version 3.0.3
|
185 |
+
* wpgmp_admin_overview capability added to read how to use instructions.
|
186 |
+
|
187 |
+
Version 3.0.2
|
188 |
+
* echo $before_widget and $after_widget added for correct widget output.
|
189 |
+
|
190 |
+
Version 3.0.1
|
191 |
+
* Category icon broken issue resolved.
|
192 |
+
* Markers are not displaying on the map, issue resolved.
|
193 |
+
* Infowindow Message is not showing on marker click, issue resolved.
|
194 |
+
|
195 |
+
Version 3.0.0
|
196 |
+
1. Sanitize all inputs and outputs.
|
197 |
+
2. New file & folder structure.
|
198 |
+
3. Object oriented based coding according to wordpress standard coding rules.
|
199 |
+
4. Clean bootstrap based design.
|
200 |
+
5. Ability to show any number of google maps on a single map.
|
201 |
+
6. Decide center latitude and longitude for each map.
|
202 |
+
7. POV Heading and Pov Pitch for street view.
|
203 |
+
8. Sub categories supported.
|
204 |
+
9. Redirect to URL on marker click.
|
205 |
+
10. City, State, Country and Postal code new fields in location form.
|
206 |
+
11. Apply marker animation.
|
207 |
+
12. Position google maps controls e.g Pan,Zoom,May Type with easy to use interface.
|
208 |
+
|
209 |
+
Version 2.3.10
|
210 |
+
1. CSRF Protection added on add/edit location.
|
211 |
+
2. CSRF Protection added on add/edit map.
|
212 |
+
3. CSRF Protection added on add/edit category.
|
213 |
+
|
214 |
+
Version 2.3.9
|
215 |
+
1. Display more than 10 locations on Manage Locations using Screen Options.
|
216 |
+
2. Display more than 10 maps on Manage Categories using Screen Options.
|
217 |
+
3. Display more than 10 categories on Manage Maps using Screen Options.
|
218 |
+
4. SSL Supported.
|
219 |
+
|
220 |
+
|
221 |
+
Version 2.3.8
|
222 |
+
1. locations, maps and category was not showing on manage pages in wordpress 4.2 resolved.
|
223 |
+
|
224 |
+
Version 2.3.7
|
225 |
+
1. Improvement Fix: Fixed add_query_arg() and remove_query_arg() usage to avoid XSS Vulnerability.
|
226 |
+
|
227 |
+
Version 2.2.0
|
228 |
+
1. Twitter Bootstrap 3 Based.
|
229 |
+
2. Solved Featured Image Problem.
|
230 |
+
|
231 |
+
Version 2.1.0
|
232 |
+
1. Infowindow CSS Improved
|
233 |
+
2. Optimized Code for Fast Map Experience
|
234 |
+
3. Solved Layer Display Problem.
|
235 |
+
|
236 |
+
Version 1.2.0
|
237 |
+
1. Zero Configuration Enabled
|
238 |
+
2. Managed Navigation
|
239 |
+
3. Custom Icon using Widget
|
240 |
+
|
241 |
+
Version 1.2.0
|
242 |
+
1. Zero Configuration Enabled
|
243 |
+
2. Managed Navigation
|
244 |
+
3. Custom Icon using Widget
|
245 |
+
Version 1.1.0
|
246 |
+
1. Solved zoom toolbar bug
|
247 |
+
2. Solved white lines on the map
|
248 |
+
3. Added Widget Support
|
249 |
+
4. Added multiple maps on a page support.
|
250 |
+
== Frequently Asked Questions ==
|
251 |
+
Check Demo here http://www.flippercode.com/product/wp-google-map-pro/
|
252 |
+
== Donations ==
|
253 |
+
|
wp-google-map-plugin.php
ADDED
@@ -0,0 +1,711 @@
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
|
Â
|
1 |
+
<?php
|
2 |
+
/**
|
3 |
+
* Wpgmp_Google_Map_Lite class file.
|
4 |
+
* @package Maps
|
5 |
+
* @author Flipper Code <hello@flippercode.com>
|
6 |
+
* @version 3.0.8
|
7 |
+
*/
|
8 |
+
|
9 |
+
/*
|
10 |
+
Plugin Name: WP Google Map Plugin
|
11 |
+
Plugin URI: http://www.flippercode.com/
|
12 |
+
Description: Display Google Maps in Pages, Posts, Sidebar or Custom Templates. Unlimited maps, locations and categories supported. It’s Responsive, Multi-Lingual and Multi-Site Supported.
|
13 |
+
Author: flippercode
|
14 |
+
Author URI: http://www.flippercode.com/
|
15 |
+
Version: 3.0.8
|
16 |
+
Text Domain: wpgmp_google_map
|
17 |
+
Domain Path: /lang/
|
18 |
+
*/
|
19 |
+
|
20 |
+
if ( ! defined( 'ABSPATH' ) ) {
|
21 |
+
die( 'You are not allowed to call this page directly.' );
|
22 |
+
}
|
23 |
+
|
24 |
+
if ( ! class_exists( 'Wpgmp_Google_Map_Lite' ) ) {
|
25 |
+
|
26 |
+
/**
|
27 |
+
* Main plugin class
|
28 |
+
* @author Flipper Code <hello@flippercode.com>
|
29 |
+
* @package Maps
|
30 |
+
*/
|
31 |
+
class Wpgmp_Google_Map_Lite
|
32 |
+
{
|
33 |
+
/**
|
34 |
+
* List of Modules.
|
35 |
+
* @var array
|
36 |
+
*/
|
37 |
+
private $modules = array();
|
38 |
+
/**
|
39 |
+
* Intialize variables, files and call actions.
|
40 |
+
* @var array
|
41 |
+
*/
|
42 |
+
public function __construct() {
|
43 |
+
error_reporting( E_ERROR | E_PARSE );
|
44 |
+
$this->_define_constants();
|
45 |
+
$this->_load_files();
|
46 |
+
$this->modules = glob( WPGMP_MODEL.'**/model.*.php' );
|
47 |
+
register_activation_hook( __FILE__, array( $this, 'plugin_activation' ) );
|
48 |
+
register_deactivation_hook( __FILE__, array( $this, 'plugin_deactivation' ) );
|
49 |
+
add_action( 'plugins_loaded', array( $this, 'load_plugin_languages' ) );
|
50 |
+
add_action( 'init', array( $this, '_init' ) );
|
51 |
+
add_action( 'widgets_init', array( $this, 'wpgmp_google_map_widget' ) );
|
52 |
+
}
|
53 |
+
/**
|
54 |
+
* Call WordPress hooks.
|
55 |
+
*/
|
56 |
+
function _init() {
|
57 |
+
|
58 |
+
global $wpdb;
|
59 |
+
|
60 |
+
// Actions.
|
61 |
+
add_action( 'admin_menu', array( $this, 'create_menu' ) );
|
62 |
+
add_action( 'media_upload_ell_insert_gmap_tab', array( $this, 'wpgmp_google_map_media_upload_tab' ) );
|
63 |
+
add_action( 'wp_enqueue_scripts', array( $this, 'wpgmp_frontend_scripts' ) );
|
64 |
+
|
65 |
+
// Filters.
|
66 |
+
add_filter( 'media_upload_tabs', array( $this, 'wpgmp_google_map_tabs_filter' ) );
|
67 |
+
// Shortodes.
|
68 |
+
add_shortcode( 'put_wpgm', array( $this, 'wpgmp_show_location_in_map' ) );
|
69 |
+
}
|
70 |
+
/**
|
71 |
+
* Register WP Google Map Widget
|
72 |
+
*/
|
73 |
+
function wpgmp_google_map_widget() {
|
74 |
+
|
75 |
+
register_widget( 'WPGMP_Google_Map_Widget_Class' );
|
76 |
+
}
|
77 |
+
/**
|
78 |
+
* Eneque scripts at frontend.
|
79 |
+
*/
|
80 |
+
function wpgmp_frontend_scripts() {
|
81 |
+
|
82 |
+
$scripts = array();
|
83 |
+
wp_enqueue_script( 'jquery' );
|
84 |
+
if ( isset( $_SERVER['HTTPS'] ) && ( 'on' == $_SERVER['HTTPS'] || 1 == $_SERVER['HTTPS'] ) || isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
|
85 |
+
$wpgmp_apilocation = 'https';
|
86 |
+
} else {
|
87 |
+
$wpgmp_apilocation = 'http';
|
88 |
+
}
|
89 |
+
|
90 |
+
$language = get_option('wpgmp_language');
|
91 |
+
|
92 |
+
if( '' == $language ) {
|
93 |
+
$language = 'en';
|
94 |
+
}
|
95 |
+
if ( get_option( 'wpgmp_api_key' ) != '' ) {
|
96 |
+
$wpgmp_apilocation .= '://maps.google.com/maps/api/js?key='.get_option( 'wpgmp_api_key' ).'&libraries=geometry,places,weather,panoramio,drawing&language='.$language;
|
97 |
+
} else {
|
98 |
+
$wpgmp_apilocation .= '://maps.google.com/maps/api/js?libraries=geometry,places,weather,panoramio,drawing&language='.$language;
|
99 |
+
}
|
100 |
+
|
101 |
+
$scripts[] = array(
|
102 |
+
'handle' => 'wpgmp-google-api',
|
103 |
+
'src' => $wpgmp_apilocation,
|
104 |
+
'deps' => array(),
|
105 |
+
);
|
106 |
+
|
107 |
+
$scripts[] = array(
|
108 |
+
'handle' => 'wpgmp-google-map-main',
|
109 |
+
'src' => WPGMP_JS.'maps.js',
|
110 |
+
'deps' => array( 'wpgmp-google-api' ),
|
111 |
+
);
|
112 |
+
|
113 |
+
if ( $scripts ) {
|
114 |
+
foreach ( $scripts as $script ) {
|
115 |
+
wp_enqueue_script( $script['handle'], $script['src'], $script['deps'], '', false );
|
116 |
+
}
|
117 |
+
}
|
118 |
+
|
119 |
+
$wpgmp_local = array();
|
120 |
+
if ( get_option( 'wpgmp_language' ) ) {
|
121 |
+
$wpgmp_local['language'] = get_option( 'wpgmp_language' );
|
122 |
+
} else { $wpgmp_local['language'] = 'en'; }
|
123 |
+
$wpgmp_local['urlforajax'] = admin_url( 'admin-ajax.php' );
|
124 |
+
|
125 |
+
wp_localize_script( 'wpgmp-google-map-main', 'wpgmp_local', $wpgmp_local );
|
126 |
+
|
127 |
+
$frontend_styles = array(
|
128 |
+
'wpgmp-frontend' => WPGMP_CSS.'frontend.css',
|
129 |
+
);
|
130 |
+
|
131 |
+
if ( $frontend_styles ) {
|
132 |
+
foreach ( $frontend_styles as $frontend_style_key => $frontend_style_value ) {
|
133 |
+
wp_enqueue_style( $frontend_style_key, $frontend_style_value );
|
134 |
+
}
|
135 |
+
}
|
136 |
+
}
|
137 |
+
/**
|
138 |
+
* Display map at the frontend using put_wpgmp shortcode.
|
139 |
+
* @param array $atts Map Options.
|
140 |
+
* @param string $content Content.
|
141 |
+
*/
|
142 |
+
function wpgmp_show_location_in_map($atts, $content = null) {
|
143 |
+
|
144 |
+
try {
|
145 |
+
$factoryObject = new FactoryControllerWPGMP();
|
146 |
+
$viewObject = $factoryObject->create_object( 'shortcode' );
|
147 |
+
$output = $viewObject->display( 'put-wpgmp',$atts );
|
148 |
+
return $output;
|
149 |
+
|
150 |
+
} catch (Exception $e) {
|
151 |
+
echo WPGMP_Template::show_message( array( 'error' => $e->getMessage() ) );
|
152 |
+
|
153 |
+
}
|
154 |
+
|
155 |
+
}
|
156 |
+
/**
|
157 |
+
* Display map at the frontend using display_map shortcode.
|
158 |
+
* @param array $atts Map Options.
|
159 |
+
*/
|
160 |
+
function wpgmp_display_map($atts) {
|
161 |
+
|
162 |
+
try {
|
163 |
+
|
164 |
+
$factoryObject = new FactoryControllerWPGMP();
|
165 |
+
$viewObject = $factoryObject->create_object( 'shortcode' );
|
166 |
+
$viewObject->display( 'put-wpgmp',$atts );
|
167 |
+
|
168 |
+
} catch (Exception $e) {
|
169 |
+
echo WPGMP_Template::show_message( array( 'error' => $e->getMessage() ) );
|
170 |
+
|
171 |
+
}
|
172 |
+
|
173 |
+
}
|
174 |
+
/**
|
175 |
+
* Process slug and display view in the backend.
|
176 |
+
*/
|
177 |
+
function processor() {
|
178 |
+
|
179 |
+
$return = '';
|
180 |
+
$page = sanitize_text_field( $_GET['page'] );
|
181 |
+
$pageData = explode( '_', $page );
|
182 |
+
$obj_type = $pageData[2];
|
183 |
+
$obj_operation = $pageData[1];
|
184 |
+
|
185 |
+
if ( count( $pageData ) < 3 ) {
|
186 |
+
die( 'Cheating!' );
|
187 |
+
}
|
188 |
+
|
189 |
+
try {
|
190 |
+
if ( count( $pageData ) > 3 ) {
|
191 |
+
$obj_type = $pageData[2].'_'.$pageData[3];
|
192 |
+
}
|
193 |
+
|
194 |
+
$factoryObject = new FactoryControllerWPGMP();
|
195 |
+
$viewObject = $factoryObject->create_object( $obj_type );
|
196 |
+
$viewObject->display( $obj_operation );
|
197 |
+
|
198 |
+
} catch (Exception $e) {
|
199 |
+
echo WPGMP_Template::show_message( array( 'error' => $e->getMessage() ) );
|
200 |
+
|
201 |
+
}
|
202 |
+
|
203 |
+
}
|
204 |
+
/**
|
205 |
+
* Create backend navigation.
|
206 |
+
*/
|
207 |
+
function create_menu() {
|
208 |
+
|
209 |
+
global $navigations;
|
210 |
+
|
211 |
+
$pagehook1 = add_menu_page(
|
212 |
+
__( 'WP Google Map', WPGMP_TEXT_DOMAIN ),
|
213 |
+
__( 'WP Google Map', WPGMP_TEXT_DOMAIN ),
|
214 |
+
'wpgmp_admin_overview',
|
215 |
+
WPGMP_SLUG,
|
216 |
+
array( $this,'processor' )
|
217 |
+
);
|
218 |
+
|
219 |
+
if ( current_user_can( 'manage_options' ) ) {
|
220 |
+
$role = get_role( 'administrator' );
|
221 |
+
$role->add_cap( 'wpgmp_admin_overview' );
|
222 |
+
}
|
223 |
+
|
224 |
+
$this->load_modules_menu();
|
225 |
+
|
226 |
+
add_action( 'load-'.$pagehook1, array( $this, 'wpgmp_backend_scripts' ) );
|
227 |
+
|
228 |
+
}
|
229 |
+
/**
|
230 |
+
* Read models and create backend navigation.
|
231 |
+
*/
|
232 |
+
function load_modules_menu() {
|
233 |
+
|
234 |
+
$files = $this->modules;
|
235 |
+
$pagehooks = array();
|
236 |
+
|
237 |
+
if ( is_array( $files ) ) {
|
238 |
+
foreach ( $files as $file ) {
|
239 |
+
|
240 |
+
$module_info = (get_file_data( $file,array( 'class' => 'Class', 'menu_order' => 'Menu Order' ) ));
|
241 |
+
if ( '' != $module_info['class'] ) {
|
242 |
+
if ( isset( $module_info['menu_order'] ) and '' != $module_info['menu_order'] ) {
|
243 |
+
$menu_order[ $module_info['menu_order'] ][] = array( $file,$module_info );
|
244 |
+
} else { $menu_order[100][] = array( $file, $module_info ); }
|
245 |
+
}
|
246 |
+
}
|
247 |
+
}
|
248 |
+
ksort( $menu_order );
|
249 |
+
foreach ( $menu_order as $order => $menus ) {
|
250 |
+
|
251 |
+
foreach ( $menus as $i => $menu ) {
|
252 |
+
$file = $menu[0];
|
253 |
+
$module_info = $menu[1];
|
254 |
+
if ( file_exists( $file ) ) {
|
255 |
+
include_once( $file );
|
256 |
+
$object = new $module_info['class'];
|
257 |
+
if ( method_exists( $object,'navigation' ) ) {
|
258 |
+
|
259 |
+
if ( ! is_array( $object->navigation() ) ) {
|
260 |
+
continue;
|
261 |
+
}
|
262 |
+
|
263 |
+
foreach ( $object->navigation() as $nav => $title ) {
|
264 |
+
|
265 |
+
if ( current_user_can( 'manage_options' ) && is_admin() ) {
|
266 |
+
$role = get_role( 'administrator' );
|
267 |
+
$role->add_cap( $nav );
|
268 |
+
|
269 |
+
}
|
270 |
+
|
271 |
+
$pagehooks[] = add_submenu_page(
|
272 |
+
WPGMP_SLUG,
|
273 |
+
$title,
|
274 |
+
$title,
|
275 |
+
$nav,
|
276 |
+
$nav,
|
277 |
+
array( $this,'processor' )
|
278 |
+
);
|
279 |
+
|
280 |
+
}
|
281 |
+
}
|
282 |
+
}
|
283 |
+
}
|
284 |
+
}
|
285 |
+
|
286 |
+
if ( is_array( $pagehooks ) ) {
|
287 |
+
|
288 |
+
foreach ( $pagehooks as $key => $pagehook ) {
|
289 |
+
add_action( 'load-'.$pagehooks[ $key ], array( $this, 'wpgmp_backend_scripts' ) );
|
290 |
+
}
|
291 |
+
}
|
292 |
+
|
293 |
+
}
|
294 |
+
/**
|
295 |
+
* Eneque scripts in the backend.
|
296 |
+
*/
|
297 |
+
function wpgmp_backend_scripts() {
|
298 |
+
|
299 |
+
if ( isset( $_SERVER['HTTPS'] ) && ( 'on' == $_SERVER['HTTPS'] || 1 == $_SERVER['HTTPS'] ) || isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && 'https' == $_SERVER['HTTP_X_FORWARDED_PROTO'] ) {
|
300 |
+
$wpgmp_apilocation = 'https';
|
301 |
+
} else {
|
302 |
+
$wpgmp_apilocation = 'http';
|
303 |
+
}
|
304 |
+
$language = get_option('wpgmp_language');
|
305 |
+
if( '' == $language ) {
|
306 |
+
$language = 'en';
|
307 |
+
}
|
308 |
+
if ( get_option( 'wpgmp_api_key' ) != '' ) {
|
309 |
+
$wpgmp_apilocation .= '://maps.google.com/maps/api/js?key='.get_option( 'wpgmp_api_key' ).'&libraries=geometry,places,weather,panoramio,drawing&language='.$language;
|
310 |
+
} else {
|
311 |
+
$wpgmp_apilocation .= '://maps.google.com/maps/api/js?libraries=geometry,places,weather,panoramio,drawing&language='.$language;
|
312 |
+
}
|
313 |
+
|
314 |
+
|
315 |
+
wp_enqueue_style( 'thickbox' );
|
316 |
+
wp_enqueue_style( 'wp-color-picker' );
|
317 |
+
$wp_scripts = array( 'jQuery','thickbox', 'wp-color-picker' );
|
318 |
+
|
319 |
+
if ( $wp_scripts ) {
|
320 |
+
foreach ( $wp_scripts as $wp_script ) {
|
321 |
+
wp_enqueue_script( $wp_script );
|
322 |
+
}
|
323 |
+
}
|
324 |
+
|
325 |
+
$scripts = array();
|
326 |
+
|
327 |
+
$scripts[] = array(
|
328 |
+
'handle' => 'wpgmp-backend-google-maps',
|
329 |
+
'src' => WPGMP_JS.'backend.js',
|
330 |
+
'deps' => array(),
|
331 |
+
);
|
332 |
+
|
333 |
+
$scripts[] = array(
|
334 |
+
'handle' => 'wpgmp-backend-google-api',
|
335 |
+
'src' => $wpgmp_apilocation,
|
336 |
+
'deps' => array(),
|
337 |
+
);
|
338 |
+
|
339 |
+
$scripts[] = array(
|
340 |
+
'handle' => 'wpgmp-map',
|
341 |
+
'src' => WPGMP_JS.'maps.js',
|
342 |
+
'deps' => array(),
|
343 |
+
);
|
344 |
+
|
345 |
+
if ( $scripts ) {
|
346 |
+
foreach ( $scripts as $script ) {
|
347 |
+
wp_enqueue_script( $script['handle'], $script['src'], $script['deps'] );
|
348 |
+
}
|
349 |
+
}
|
350 |
+
|
351 |
+
$wpgmp_local = array();
|
352 |
+
if ( get_option( 'wpgmp_language' ) ) {
|
353 |
+
$wpgmp_local['language'] = get_option( 'wpgmp_language' );
|
354 |
+
} else { $wpgmp_local['language'] = 'en'; }
|
355 |
+
|
356 |
+
$wpgmp_local['urlforajax'] = admin_url( 'admin-ajax.php' );
|
357 |
+
wp_localize_script( 'wpgmp-map', 'wpgmp_local', $wpgmp_local );
|
358 |
+
$admin_styles = array(
|
359 |
+
'wpgmp-map-bootstrap' => WPGMP_CSS.'bootstrap.min.flat.css',
|
360 |
+
'wpgmp-backend-google-map' => WPGMP_CSS.'backend.css',
|
361 |
+
);
|
362 |
+
|
363 |
+
if ( $admin_styles ) {
|
364 |
+
foreach ( $admin_styles as $admin_style_key => $admin_style_value ) {
|
365 |
+
wp_enqueue_style( $admin_style_key, $admin_style_value );
|
366 |
+
}
|
367 |
+
}
|
368 |
+
}
|
369 |
+
/**
|
370 |
+
* Load plugin language file.
|
371 |
+
*/
|
372 |
+
function load_plugin_languages() {
|
373 |
+
load_plugin_textdomain( WPGMP_TEXT_DOMAIN, false, WPGMP_FOLDER.'/lang/' );
|
374 |
+
}
|
375 |
+
/**
|
376 |
+
* Call hook on plugin activation for both multi-site and single-site.
|
377 |
+
*/
|
378 |
+
function plugin_activation() {
|
379 |
+
|
380 |
+
if ( is_multisite() && $network_wide ) {
|
381 |
+
global $wpdb;
|
382 |
+
$currentblog = $wpdb->blogid;
|
383 |
+
$activated = array();
|
384 |
+
$sql = "SELECT blog_id FROM {$wpdb->blogs}";
|
385 |
+
$blog_ids = $wpdb->get_col( $wpdb->prepare( $sql, null ) );
|
386 |
+
|
387 |
+
foreach ( $blog_ids as $blog_id ) {
|
388 |
+
switch_to_blog( $blog_id );
|
389 |
+
$this->wpgmp_activation();
|
390 |
+
$activated[] = $blog_id;
|
391 |
+
}
|
392 |
+
|
393 |
+
switch_to_blog( $currentblog );
|
394 |
+
update_site_option( 'op_activated', $activated );
|
395 |
+
|
396 |
+
} else {
|
397 |
+
$this->wpgmp_activation();
|
398 |
+
}
|
399 |
+
}
|
400 |
+
/**
|
401 |
+
* Call hook on plugin deactivation for both multi-site and single-site.
|
402 |
+
*/
|
403 |
+
function plugin_deactivation() {
|
404 |
+
|
405 |
+
if ( is_multisite() && $network_wide ) {
|
406 |
+
global $wpdb;
|
407 |
+
$currentblog = $wpdb->blogid;
|
408 |
+
$activated = array();
|
409 |
+
$sql = "SELECT blog_id FROM {$wpdb->blogs}";
|
410 |
+
$blog_ids = $wpdb->get_col( $wpdb->prepare( $sql, null ) );
|
411 |
+
|
412 |
+
foreach ( $blog_ids as $blog_id ) {
|
413 |
+
switch_to_blog( $blog_id );
|
414 |
+
$this->wpgmp_deactivation();
|
415 |
+
$activated[] = $blog_id;
|
416 |
+
}
|
417 |
+
|
418 |
+
switch_to_blog( $currentblog );
|
419 |
+
update_site_option( 'op_activated', $activated );
|
420 |
+
|
421 |
+
} else {
|
422 |
+
$this->wpgmp_deactivation();
|
423 |
+
}
|
424 |
+
}
|
425 |
+
|
426 |
+
/**
|
427 |
+
* Create choose icon tab in media manager.
|
428 |
+
* @param array $tabs Current Tabs.
|
429 |
+
* @return array New Tabs.
|
430 |
+
*/
|
431 |
+
function wpgmp_google_map_tabs_filter($tabs) {
|
432 |
+
|
433 |
+
$newtab = array( 'ell_insert_gmap_tab' => __( 'Choose Icons', WPGMP_TEXT_DOMAIN ) );
|
434 |
+
return array_merge( $tabs, $newtab );
|
435 |
+
}
|
436 |
+
/**
|
437 |
+
* Intialize wp_iframe for icons tab
|
438 |
+
* @return [type] [description]
|
439 |
+
*/
|
440 |
+
function wpgmp_google_map_media_upload_tab() {
|
441 |
+
|
442 |
+
return wp_iframe( array( $this, 'wpgmp_google_map_icon' ), $errors );
|
443 |
+
}
|
444 |
+
/**
|
445 |
+
* Read images/icons folder.
|
446 |
+
*/
|
447 |
+
function wpgmp_google_map_icon() {
|
448 |
+
|
449 |
+
wp_enqueue_style( 'media' );
|
450 |
+
media_upload_header();
|
451 |
+
$form_action_url = site_url( "wp-admin/media-upload.php?type={$GLOBALS['type']}&tab=ell_insert_gmap_tab", 'admin' );
|
452 |
+
?>
|
453 |
+
|
454 |
+
<style type="text/css">
|
455 |
+
#select_icons .read_icons {
|
456 |
+
width: 32px;
|
457 |
+
height: 32px;ß
|
458 |
+
}
|
459 |
+
#select_icons .active img {
|
460 |
+
border: 3px solid #000;
|
461 |
+
width: 26px;
|
462 |
+
}
|
463 |
+
</style>
|
464 |
+
|
465 |
+
<script type="text/javascript">
|
466 |
+
|
467 |
+
jQuery(document).ready(function($) {
|
468 |
+
|
469 |
+
$(".read_icons").click(function () {
|
470 |
+
|
471 |
+
$(".read_icons").removeClass('active');
|
472 |
+
$(this).addClass('active');
|
473 |
+
});
|
474 |
+
|
475 |
+
$('input[name="wpgmp_search_icon"]').keyup(function() {
|
476 |
+
if($(this).val() == '')
|
477 |
+
$('.read_icons').show();
|
478 |
+
else {
|
479 |
+
$('.read_icons').hide();
|
480 |
+
$('img[title^="' + $(this).val() + '"]').parent().show();
|
481 |
+
}
|
482 |
+
|
483 |
+
});
|
484 |
+
|
485 |
+
});
|
486 |
+
|
487 |
+
function add_icon_to_images(target) {
|
488 |
+
|
489 |
+
if(jQuery('.read_icons').hasClass('active'))
|
490 |
+
{
|
491 |
+
imgsrc = jQuery('.active').find('img').attr('src');
|
492 |
+
var win = window.dialogArguments || opener || parent || top;
|
493 |
+
win.send_icon_to_map(imgsrc,target);
|
494 |
+
}
|
495 |
+
else
|
496 |
+
{
|
497 |
+
alert('Choose your icon.');
|
498 |
+
}
|
499 |
+
}
|
500 |
+
</script>
|
501 |
+
|
502 |
+
<form enctype="multipart/form-data" method="post" action="<?php echo esc_attr( $form_action_url ); ?>" class="media-upload-form" id="library-form">
|
503 |
+
<h3 class="media-title" style="color: #5A5A5A; font-family: Georgia, 'Times New Roman', Times, serif; font-weight: normal; font-size: 1.6em; margin-left: 10px;"><?php _e( 'Choose icon', WPGMP_TEXT_DOMAIN ) ?> <input name="wpgmp_search_icon" id="wpgmp_search_icon" type='text' value="" placeholder="<?php _e( 'Search icons',WPGMP_TEXT_DOMAIN ); ?>" />
|
504 |
+
</h3>
|
505 |
+
<div style="margin-bottom:20px; float:left; width:100%;">
|
506 |
+
<ul style="float:left; width:100%;" id="select_icons">
|
507 |
+
<?php
|
508 |
+
$dir = WPGMP_ICONS_DIR;
|
509 |
+
$file_display = array( 'jpg', 'jpeg', 'png', 'gif' );
|
510 |
+
|
511 |
+
if ( file_exists( $dir ) == false ) {
|
512 |
+
echo 'Directory \'', $dir, '\' not found!';
|
513 |
+
|
514 |
+
} else {
|
515 |
+
$dir_contents = scandir( $dir );
|
516 |
+
foreach ( $dir_contents as $file ) {
|
517 |
+
$image_data = explode( '.', $file );
|
518 |
+
$file_type = strtolower( end( $image_data ) );
|
519 |
+
if ( '.' !== $file && '..' !== $file && true == in_array( $file_type, $file_display ) ) {
|
520 |
+
?>
|
521 |
+
<li class="read_icons" style="float:left;">
|
522 |
+
<img alt="<?php echo $image_data[0]; ?>" title="<?php echo $image_data[0]; ?>" src="<?php echo WPGMP_ICONS.$file; ?>" style="cursor:pointer;" />
|
523 |
+
</li>
|
524 |
+
<?php
|
525 |
+
}
|
526 |
+
}
|
527 |
+
}
|
528 |
+
?>
|
529 |
+
</ul>
|
530 |
+
<button type="button" class="button" style="margin-left:10px;" value="1" onclick="add_icon_to_images('<?php echo (wp_unslash( $_GET['target'] )); ?>');" name="send[<?php echo $picid ?>]"><?php _e( 'Insert into Post', WPGMP_TEXT_DOMAIN ) ?></button>
|
531 |
+
</div>
|
532 |
+
</form>
|
533 |
+
<?php
|
534 |
+
}
|
535 |
+
/**
|
536 |
+
* Perform tasks on plugin deactivation.
|
537 |
+
*/
|
538 |
+
function wpgmp_deactivation() {
|
539 |
+
|
540 |
+
}
|
541 |
+
|
542 |
+
/**
|
543 |
+
* Perform tasks on plugin deactivation.
|
544 |
+
*/
|
545 |
+
function wpgmp_activation() {
|
546 |
+
|
547 |
+
global $wpdb;
|
548 |
+
|
549 |
+
require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
|
550 |
+
|
551 |
+
$files = $this->modules;
|
552 |
+
$pagehooks = array();
|
553 |
+
|
554 |
+
if ( is_array( $files ) ) {
|
555 |
+
foreach ( $files as $file ) {
|
556 |
+
|
557 |
+
$module_info = (get_file_data( $file,array( 'class' => 'Class', 'menu_order' => 'Menu Order' ) ));
|
558 |
+
if ( '' != $module_info['class'] ) {
|
559 |
+
if ( file_exists( $file ) ) {
|
560 |
+
include_once( $file );
|
561 |
+
$object = new $module_info['class'];
|
562 |
+
if ( method_exists( $object,'install' ) ) {
|
563 |
+
$tables[] = $object->install();
|
564 |
+
}
|
565 |
+
}
|
566 |
+
}
|
567 |
+
}
|
568 |
+
}
|
569 |
+
|
570 |
+
if ( is_array( $tables ) ) {
|
571 |
+
foreach ( $tables as $i => $sql ) {
|
572 |
+
dbDelta( $sql );
|
573 |
+
}
|
574 |
+
}
|
575 |
+
|
576 |
+
}
|
577 |
+
/**
|
578 |
+
* Define all constants.
|
579 |
+
*/
|
580 |
+
private function _define_constants() {
|
581 |
+
|
582 |
+
global $wpdb;
|
583 |
+
|
584 |
+
if ( ! defined( 'WPGMP_SLUG' ) ) {
|
585 |
+
define( 'WPGMP_SLUG', 'wpgmp_view_overview' );
|
586 |
+
}
|
587 |
+
|
588 |
+
if ( ! defined( 'WPGMP_VERSION' ) ) {
|
589 |
+
define( 'WPGMP_VERSION', '3.0.0' );
|
590 |
+
}
|
591 |
+
|
592 |
+
if ( ! defined( 'WPGMP_TEXT_DOMAIN' ) ) {
|
593 |
+
define( 'WPGMP_TEXT_DOMAIN', 'wp-google-map-plugin' );
|
594 |
+
}
|
595 |
+
|
596 |
+
if ( ! defined( 'WPGMP_FOLDER' ) ) {
|
597 |
+
define( 'WPGMP_FOLDER', basename( dirname( __FILE__ ) ) );
|
598 |
+
}
|
599 |
+
|
600 |
+
if ( ! defined( 'WPGMP_DIR' ) ) {
|
601 |
+
define( 'WPGMP_DIR', plugin_dir_path( __FILE__ ) );
|
602 |
+
}
|
603 |
+
|
604 |
+
if ( ! defined( 'WPGMP_ICONS_DIR' ) ) {
|
605 |
+
define( 'WPGMP_ICONS_DIR', WPGMP_DIR.'/assets/images/icons/' );
|
606 |
+
}
|
607 |
+
|
608 |
+
if ( ! defined( 'WPGMP_CORE_CLASSES' ) ) {
|
609 |
+
define( 'WPGMP_CORE_CLASSES', WPGMP_DIR.'core/' );
|
610 |
+
}
|
611 |
+
|
612 |
+
if ( ! defined( 'WPGMP_CONTROLLER' ) ) {
|
613 |
+
define( 'WPGMP_CONTROLLER', WPGMP_CORE_CLASSES );
|
614 |
+
}
|
615 |
+
|
616 |
+
if ( ! defined( 'WPGMP_CORE_CONTROLLER_CLASS' ) ) {
|
617 |
+
define( 'WPGMP_CORE_CONTROLLER_CLASS', WPGMP_CORE_CLASSES.'class.controller.php' );
|
618 |
+
}
|
619 |
+
|
620 |
+
if ( ! defined( 'WPGMP_MODEL' ) ) {
|
621 |
+
define( 'WPGMP_MODEL', WPGMP_DIR.'modules/' );
|
622 |
+
}
|
623 |
+
|
624 |
+
if ( ! defined( 'WPGMP_URL' ) ) {
|
625 |
+
define( 'WPGMP_URL', plugin_dir_url( WPGMP_FOLDER ).WPGMP_FOLDER.'/' );
|
626 |
+
}
|
627 |
+
|
628 |
+
if ( ! defined( 'WPGMP_INC_URL' ) ) {
|
629 |
+
define( 'WPGMP_INC_URL', WPGMP_URL.'includes/' );
|
630 |
+
}
|
631 |
+
|
632 |
+
if ( ! defined( 'WPGMP_VIEWS_PATH' ) ) {
|
633 |
+
define( 'WPGMP_VIEWS_PATH', WPGMP_CLASSES.'view' );
|
634 |
+
}
|
635 |
+
|
636 |
+
if ( ! defined( 'WPGMP_CSS' ) ) {
|
637 |
+
define( 'WPGMP_CSS', WPGMP_URL.'/assets/css/' );
|
638 |
+
}
|
639 |
+
|
640 |
+
if ( ! defined( 'WPGMP_JS' ) ) {
|
641 |
+
define( 'WPGMP_JS', WPGMP_URL.'/assets/js/' );
|
642 |
+
}
|
643 |
+
|
644 |
+
if ( ! defined( 'WPGMP_IMAGES' ) ) {
|
645 |
+
define( 'WPGMP_IMAGES', WPGMP_URL.'/assets/images/' );
|
646 |
+
}
|
647 |
+
|
648 |
+
if ( ! defined( 'WPGMP_FONTS' ) ) {
|
649 |
+
define( 'WPGMP_FONTS', WPGMP_URL.'fonts/' );
|
650 |
+
}
|
651 |
+
|
652 |
+
if ( ! defined( 'WPGMP_ICONS' ) ) {
|
653 |
+
define( 'WPGMP_ICONS', WPGMP_URL.'/assets/images/icons/' );
|
654 |
+
}
|
655 |
+
$upload_dir = wp_upload_dir();
|
656 |
+
if ( ! defined( 'WPGMP_BACKUP' ) ) {
|
657 |
+
|
658 |
+
if ( ! is_dir( $upload_dir['basedir'].'/maps-backup' ) ) {
|
659 |
+
mkdir( $upload_dir['basedir'].'/maps-backup' );
|
660 |
+
}
|
661 |
+
define( 'WPGMP_BACKUP',$upload_dir['basedir'].'/maps-backup/' );
|
662 |
+
define( 'WPGMP_BACKUP_URL',$upload_dir['baseurl'].'/maps-backup/' );
|
663 |
+
|
664 |
+
}
|
665 |
+
|
666 |
+
if ( ! defined( 'TBL_LOCATION' ) ) {
|
667 |
+
define( 'TBL_LOCATION', $wpdb->prefix.'map_locations' );
|
668 |
+
}
|
669 |
+
|
670 |
+
if ( ! defined( 'TBL_GROUPMAP' ) ) {
|
671 |
+
define( 'TBL_GROUPMAP', $wpdb->prefix.'group_map' );
|
672 |
+
}
|
673 |
+
|
674 |
+
if ( ! defined( 'TBL_MAP' ) ) {
|
675 |
+
define( 'TBL_MAP', $wpdb->prefix.'create_map' );
|
676 |
+
}
|
677 |
+
|
678 |
+
if ( ! defined( 'TBL_ROUTES' ) ) {
|
679 |
+
define( 'TBL_ROUTES', $wpdb->prefix.'map_routes' );
|
680 |
+
}
|
681 |
+
|
682 |
+
if ( ! defined( 'TBL_BACKUPS' ) ) {
|
683 |
+
define( 'TBL_BACKUPS', $wpdb->prefix.'wpgmp_backups' );
|
684 |
+
}
|
685 |
+
|
686 |
+
}
|
687 |
+
/**
|
688 |
+
* Load all required core classes.
|
689 |
+
*/
|
690 |
+
private function _load_files() {
|
691 |
+
|
692 |
+
$files_to_include = array(
|
693 |
+
'class.map-widget.php',
|
694 |
+
'class.tabular.php',
|
695 |
+
'class.template.php',
|
696 |
+
'abstract.factory.php',
|
697 |
+
'class.controller-factory.php',
|
698 |
+
'class.model-factory.php',
|
699 |
+
'class.controller.php',
|
700 |
+
'class.model.php',
|
701 |
+
'class.validation.php',
|
702 |
+
'class.database.php',
|
703 |
+
);
|
704 |
+
foreach ( $files_to_include as $file ) {
|
705 |
+
require_once( WPGMP_CORE_CLASSES.$file );
|
706 |
+
}
|
707 |
+
}
|
708 |
+
}
|
709 |
+
}
|
710 |
+
|
711 |
+
new Wpgmp_Google_Map_Lite();
|